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

Commit 7c64525d authored by Ben Lin's avatar Ben Lin
Browse files

PiP: Re-attach PiP menu when display changes.

When changing the display (e.g. foldables that fold/unfolds) while the
menu is showing, it seems the SF layers go through some changes that get
the menu in a bad state and no longer renders correctly. Just teardown
and recreate/re-attach the menu instead.

Bug: 218987352
Test: Unfold/fold device while menu is showing, menu still shows up
afterwards

Change-Id: I4255191c3298cf663b6a0428ece6f34fd96ff3a6
parent 765bbec6
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -171,7 +171,7 @@ public class PhonePipMenuController implements PipMenuController {
        detachPipMenuView();
    }

    private void attachPipMenuView() {
    void attachPipMenuView() {
        // In case detach was not called (e.g. PIP unexpectedly closed)
        if (mPipMenuView != null) {
            detachPipMenuView();
+1 −0
Original line number Diff line number Diff line
@@ -521,6 +521,7 @@ public class PipController implements PipTransitionController.PipTransitionCallb
        };

        if (mPipTaskOrganizer.isInPip() && saveRestoreSnapFraction) {
            mMenuController.attachPipMenuView();
            // Calculate the snap fraction of the current stack along the old movement bounds
            final PipSnapAlgorithm pipSnapAlgorithm = mPipBoundsAlgorithm.getSnapAlgorithm();
            final Rect postChangeStackBounds = new Rect(mPipBoundsState.getBounds());