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

Commit 25032134 authored by Riddle Hsu's avatar Riddle Hsu
Browse files

Freeze insets position for shell transition rotation

The insets-freeze should be enabled for all types of shell transition,
e.g. change/open/close. Otherwise if the app changes insets flags and
requests different orientation at the same time, the position of the
insets provider (e.g. navigation bar) will show at a rotated position.

Fixes: 237599512
Test: atest TransitionTests#testDisplayRotationChange

Change-Id: I5723c8082f6c9d658f83c0e5064463870870283f
parent f2ec759e
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -357,7 +357,7 @@ class AsyncRotationController extends FadeAnimationController implements Consume
     * or seamless transformation in a rotated display.
     */
    boolean shouldFreezeInsetsPosition(WindowState w) {
        return mTransitionOp == OP_APP_SWITCH && w.mTransitionController.inTransition()
        return mTransitionOp != OP_LEGACY && w.mTransitionController.inTransition()
                && isTargetToken(w.mToken);
    }

+1 −0
Original line number Diff line number Diff line
@@ -683,6 +683,7 @@ public class TransitionTests extends WindowTestsBase {
        assertTrue(ime.mToken.inTransition());
        assertTrue(task.inTransition());
        assertTrue(asyncRotationController.isTargetToken(decorToken));
        assertTrue(asyncRotationController.shouldFreezeInsetsPosition(navBar));

        screenDecor.setOrientationChanging(false);
        // Status bar finishes drawing before the start transaction. Its fade-in animation will be