am 7fb8b565: Include the local state obj in ACTION_DRAG_STARTED events

* commit '7fb8b565f9cd2ec6a63ff4d8a89f98f68a1a138c':
  Include the local state obj in ACTION_DRAG_STARTED events
diff --git a/core/java/android/view/DragEvent.java b/core/java/android/view/DragEvent.java
index 25b680e6..4d83891 100644
--- a/core/java/android/view/DragEvent.java
+++ b/core/java/android/view/DragEvent.java
@@ -130,12 +130,13 @@
     }
 
     private void init(int action, float x, float y, ClipDescription description, ClipData data,
-            boolean result) {
+            Object localState, boolean result) {
         mAction = action;
         mX = x;
         mY = y;
         mClipDescription = description;
         mClipData = data;
+        mLocalState = localState;
         mDragResult = result;
     }
 
@@ -150,7 +151,7 @@
         synchronized (gRecyclerLock) {
             if (gRecyclerTop == null) {
                 ev = new DragEvent();
-                ev.init(action, x, y, description, data, result);
+                ev.init(action, x, y, description, data, localState, result);
                 return ev;
             }
             ev = gRecyclerTop;
@@ -161,7 +162,7 @@
         ev.mRecycled = false;
         ev.mNext = null;
 
-        ev.init(action, x, y, description, data, result);
+        ev.init(action, x, y, description, data, localState, result);
 
         return ev;
     }
diff --git a/core/java/android/view/ViewRoot.java b/core/java/android/view/ViewRoot.java
index 97983ba..2c6ec71 100644
--- a/core/java/android/view/ViewRoot.java
+++ b/core/java/android/view/ViewRoot.java
@@ -228,7 +228,7 @@
     /* Drag/drop */
     ClipDescription mDragDescription;
     View mCurrentDragView;
-    Object mLocalDragState;
+    volatile Object mLocalDragState;
     final PointF mDragPoint = new PointF();
     final PointF mLastTouchPoint = new PointF();
 
@@ -2051,7 +2051,9 @@
         } break;
         case DISPATCH_DRAG_EVENT:
         case DISPATCH_DRAG_LOCATION_EVENT: {
-            handleDragEvent((DragEvent)msg.obj);
+            DragEvent event = (DragEvent)msg.obj;
+            event.mLocalState = mLocalDragState;    // only present when this app called startDrag()
+            handleDragEvent(event);
         } break;
         }
     }
@@ -3133,7 +3135,6 @@
         } else {
             what = DISPATCH_DRAG_EVENT;
         }
-        event.mLocalState = mLocalDragState;    // only present when this app called startDrag()
         Message msg = obtainMessage(what, event);
         sendMessage(msg);
     }