commit | 8fa4065c08298bb506a31cfbc5795ddfd11a1928 | [log] [tgz] |
---|---|---|
author | Jon Miranda <jonmiranda@google.com> | Thu May 12 15:22:10 2022 +0000 |
committer | Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> | Thu May 12 15:22:10 2022 +0000 |
tree | a9f8ad8fd88f0d1e3dbd20b95302e80286625e66 | |
parent | dd1438a22045fb0a0b6862a973127760e34f688b [diff] | |
parent | a3764216a8f3181016bdd00835faf30af406cd44 [diff] |
Merge "Clear all DragView in onResume" into tm-dev am: a3764216a8 Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Launcher3/+/18284044 Change-Id: I37f27859305fe028994558e1f232ade70baa9b5b Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
diff --git a/src/com/android/launcher3/Launcher.java b/src/com/android/launcher3/Launcher.java index ad87451..135b88d 100644 --- a/src/com/android/launcher3/Launcher.java +++ b/src/com/android/launcher3/Launcher.java
@@ -1169,6 +1169,7 @@ } AbstractFloatingView.closeAllOpenViewsExcept(this, false, TYPE_REBIND_SAFE); + DragView.removeAllViews(this); TraceHelper.INSTANCE.endSection(traceToken); }
diff --git a/src/com/android/launcher3/dragndrop/DragView.java b/src/com/android/launcher3/dragndrop/DragView.java index a3945fd..0264ae2 100644 --- a/src/com/android/launcher3/dragndrop/DragView.java +++ b/src/com/android/launcher3/dragndrop/DragView.java
@@ -578,4 +578,19 @@ iv.setImageDrawable(drawable); return iv; } + + /** + * Removes any stray DragView from the DragLayer. + */ + public static void removeAllViews(ActivityContext activity) { + BaseDragLayer dragLayer = activity.getDragLayer(); + // Iterate in reverse order. DragView is added later to the dragLayer, + // and will be one of the last views. + for (int i = dragLayer.getChildCount() - 1; i >= 0; i--) { + View child = dragLayer.getChildAt(i); + if (child instanceof DragView) { + dragLayer.removeView(child); + } + } + } }