commit | 5902269fed5d7fe4832179b347c572675088aa20 | [log] [tgz] |
---|---|---|
author | Jon Miranda <jonmiranda@google.com> | Fri Dec 10 19:11:28 2021 +0000 |
committer | Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> | Fri Dec 10 19:11:28 2021 +0000 |
tree | 49f078b05630a9b6c2c92c778ae6fb12ae8de83c | |
parent | 58f1b7f77e73326cd7cfaf1e0749f69e788ecf7b [diff] | |
parent | 48d82e2c19192546f8bb63761d30e0f71a880010 [diff] |
Merge "Clear all DragView in onSaveInstanceState" into sc-v2-dev am: 7ac2a71b94 am: 48d82e2c19 Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Launcher3/+/16425110 Change-Id: I8e7d3a99a70a50352ed51674a7aa9e0c4f970cea
diff --git a/src/com/android/launcher3/Launcher.java b/src/com/android/launcher3/Launcher.java index e9725cb..801a31d 100644 --- a/src/com/android/launcher3/Launcher.java +++ b/src/com/android/launcher3/Launcher.java
@@ -1639,6 +1639,8 @@ AbstractFloatingView.closeOpenViews(this, false, TYPE_ALL & ~TYPE_REBIND_SAFE); finishAutoCancelActionMode(); + DragView.removeAllViews(this); + if (mPendingRequestArgs != null) { outState.putParcelable(RUNTIME_STATE_PENDING_REQUEST_ARGS, mPendingRequestArgs); }
diff --git a/src/com/android/launcher3/dragndrop/DragView.java b/src/com/android/launcher3/dragndrop/DragView.java index 8313571..4588a04 100644 --- a/src/com/android/launcher3/dragndrop/DragView.java +++ b/src/com/android/launcher3/dragndrop/DragView.java
@@ -564,4 +564,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); + } + } + } }