Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 48d82e2c authored by Jon Miranda's avatar Jon Miranda Committed by Automerger Merge Worker
Browse files

Merge "Clear all DragView in onSaveInstanceState" into sc-v2-dev am: 7ac2a71b

Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Launcher3/+/16425110

Change-Id: I60f6a9e8ae87bb011f9e7f4a7b11748415f044c1
parents abc325df 7ac2a71b
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -1637,6 +1637,8 @@ public class Launcher extends StatefulActivity<LauncherState> implements Launche
        AbstractFloatingView.closeOpenViews(this, false, TYPE_ALL & ~TYPE_REBIND_SAFE);
        finishAutoCancelActionMode();

        DragView.removeAllViews(this);

        if (mPendingRequestArgs != null) {
            outState.putParcelable(RUNTIME_STATE_PENDING_REQUEST_ARGS, mPendingRequestArgs);
        }
+15 −0
Original line number Diff line number Diff line
@@ -565,4 +565,19 @@ public abstract class DragView<T extends Context & ActivityContext> extends Fram
        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);
            }
        }
    }
}