commit | d9cd6bfe0697a17082a60c73124b891ccddd771a | [log] [tgz] |
---|---|---|
author | Jon Miranda <jonmiranda@google.com> | Thu May 12 15:30:04 2022 +0000 |
committer | Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> | Thu May 12 15:30:04 2022 +0000 |
tree | 58f435d1abd6c726d7b68ae1598a896c74f7d50a | |
parent | d104a6579befac0bcb60c5e08c866ffeb8789d50 [diff] | |
parent | 8fa4065c08298bb506a31cfbc5795ddfd11a1928 [diff] |
Merge "Clear all DragView in onResume" into tm-dev am: a3764216a8 am: 8fa4065c08 Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Launcher3/+/18284044 Change-Id: I8abeb02dc2d916b2db6fac6423676c764162081e 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); + } + } + } }