Send ACTION_DRAG_LOCATION right after ACTION_DRAG_STARTED

When an app is both drag and drop origin and recipient, it might not
get ACTION_DRAG_ENTERED in some cases. Specifically, when
mouse is long-pressed and released in place, the sequence
of drag events is: ACTION_DRAG_STARTED, ACTION_DROP,
ACTION_DRAG_ENDED. This is happening because
ACTION_DRAG_ENTERED is emitted from ACTION_DRAG_LOCATION
handler (which is never called since mouse has not moved).

This problem does not exist with touch because (at least according
to observable behavior on Nexus 9) when drag and drop is initiated
by touch, MotionEvent.ACTION_MOVE immediately follows
MotionEvent.ACTION_DOWN (which normally causes
View.startDragAndDrop).

This CL fixes this problem by sending a single ACTION_DRAG_LOCATION
right after ACTION_DRAG_STARTED.

Bug: 26566708
Change-Id: Ifc8dd1005c04a5c8f0dc3f14be9e4839204cf281
diff --git a/services/core/java/com/android/server/wm/Session.java b/services/core/java/com/android/server/wm/Session.java
index 1b6957d..ced7818 100644
--- a/services/core/java/com/android/server/wm/Session.java
+++ b/services/core/java/com/android/server/wm/Session.java
@@ -353,6 +353,8 @@
                 if (SHOW_LIGHT_TRANSACTIONS) Slog.i(
                         TAG_WM, "<<< CLOSE TRANSACTION performDrag");
             }
+
+            mService.mDragState.notifyLocationLw(touchX, touchY);
         }
 
         return true;    // success!