commit | 48d82e2c19192546f8bb63761d30e0f71a880010 | [log] [tgz] |
---|---|---|
author | Jon Miranda <jonmiranda@google.com> | Fri Dec 10 18:48:18 2021 +0000 |
committer | Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> | Fri Dec 10 18:48:18 2021 +0000 |
tree | fdc3e90b46764f7516cec9f31e09ec77ac5435df | |
parent | abc325df918f66717c3f75acf8cbf05271768ed3 [diff] | |
parent | 7ac2a71b942bb8f6b6571fbcf9a6de0807aad586 [diff] |
Merge "Clear all DragView in onSaveInstanceState" into sc-v2-dev am: 7ac2a71b94 Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Launcher3/+/16425110 Change-Id: I60f6a9e8ae87bb011f9e7f4a7b11748415f044c1
diff --git a/src/com/android/launcher3/Launcher.java b/src/com/android/launcher3/Launcher.java index d60cd31..81a0d5b 100644 --- a/src/com/android/launcher3/Launcher.java +++ b/src/com/android/launcher3/Launcher.java
@@ -1637,6 +1637,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 fa65945..c37613f 100644 --- a/src/com/android/launcher3/dragndrop/DragView.java +++ b/src/com/android/launcher3/dragndrop/DragView.java
@@ -565,4 +565,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); + } + } + } }