From cfb803c42c73db8c7319b225922fa9df5f07fe50 Mon Sep 17 00:00:00 2001 From: Tony Wickham Date: Wed, 15 Apr 2020 15:56:57 -0500 Subject: [PATCH] Address race condition with drag from external window When dragging from another window, e.g. when pinning an app shortcut, there's a race condition as follows if launcher is killed: - System drag starts - Workspace loads and starts binding, canceling the drag With this change, the drag will get onDragStart() again after this case and allow completion of the drop. Change-Id: I3f1c786ad1d451ecda9bbac5e9a9a3e0d8b66f73 --- src/com/android/launcher3/dragndrop/BaseItemDragListener.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/com/android/launcher3/dragndrop/BaseItemDragListener.java b/src/com/android/launcher3/dragndrop/BaseItemDragListener.java index 9b91a1de67..e47a16f722 100644 --- a/src/com/android/launcher3/dragndrop/BaseItemDragListener.java +++ b/src/com/android/launcher3/dragndrop/BaseItemDragListener.java @@ -92,7 +92,7 @@ public abstract class BaseItemDragListener implements View.OnDragListener, DragS postCleanup(); return false; } - if (event.getAction() == DragEvent.ACTION_DRAG_STARTED) { + if (event.getAction() == DragEvent.ACTION_DRAG_STARTED || !mDragController.isDragging()) { if (onDragStart(event)) { return true; } else {