Merge "Enable global (cross-application) drag/drop"
diff --git a/api/current.xml b/api/current.xml
index 2a515a3..e8a6790 100644
--- a/api/current.xml
+++ b/api/current.xml
@@ -222056,6 +222056,17 @@
visibility="public"
>
</method>
+<field name="DRAG_FLAG_GLOBAL"
+ type="int"
+ transient="false"
+ volatile="false"
+ value="1"
+ static="true"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</field>
<field name="DRAWING_CACHE_QUALITY_AUTO"
type="int"
transient="false"
diff --git a/core/java/android/view/View.java b/core/java/android/view/View.java
index 2df7198..5aa2f1a 100644
--- a/core/java/android/view/View.java
+++ b/core/java/android/view/View.java
@@ -2279,8 +2279,10 @@
boolean mCanAcceptDrop;
/**
- * Flag indicating that a drag can cross window boundaries
- * @hide
+ * Flag indicating that a drag can cross window boundaries. When
+ * {@link #startDrag(ClipData, DragShadowBuilder, Object, int)} is called
+ * with this flag set, all visible applications will be able to participate
+ * in the drag operation and receive the dragged content.
*/
public static final int DRAG_FLAG_GLOBAL = 1;
diff --git a/services/java/com/android/server/WindowManagerService.java b/services/java/com/android/server/WindowManagerService.java
index faaa28d7..8f2a84e 100644
--- a/services/java/com/android/server/WindowManagerService.java
+++ b/services/java/com/android/server/WindowManagerService.java
@@ -5804,8 +5804,7 @@
outSurface.copyFrom(surface);
final IBinder winBinder = window.asBinder();
token = new Binder();
- // TODO: preserve flags param in DragState
- mDragState = new DragState(token, surface, 0, winBinder);
+ mDragState = new DragState(token, surface, flags, winBinder);
mDragState.mSurface = surface;
token = mDragState.mToken = new Binder();