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

Commit d3414b06 authored by wilsonshih's avatar wilsonshih Committed by Wei Sheng Shih
Browse files

Allows the system window to be shown during the PB animation...

...if the predictive back animation triggers a fixed rotation animation.
So if the edge back window is drawn after the async rotation animation
has started, it won't remain hidden.

Flag: EXEMPT bugfix
Bug: 368296326
Test: launch app then rotation device, trigger back-to-home. Verify
the edge back window can be visible after gesture started.

Change-Id: Ib3f52357ea02a929348c97c86577eedb53243f47
parent fe30fc14
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -653,7 +653,9 @@ class AsyncRotationController extends FadeAnimationController implements Consume
            // by drawing the rotated content before applying projection transaction of display.
            // And it will fade in after the display transition is finished.
            if (mTransitionOp == OP_APP_SWITCH && !mIsStartTransactionCommitted
                    && canBeAsync(w.mToken) && !mDisplayContent.hasFixedRotationTransientLaunch()) {
                    && canBeAsync(w.mToken) && !mDisplayContent.hasFixedRotationTransientLaunch()
                    && !mService.mAtmService.mBackNavigationController.hasFixedRotationAnimation(
                            mDisplayContent)) {
                hideImmediately(w.mToken, Operation.ACTION_FADE);
                if (DEBUG) Slog.d(TAG, "Hide on finishDrawing " + w.mToken.getTopChild());
            }
+9 −0
Original line number Diff line number Diff line
@@ -622,6 +622,15 @@ class BackNavigationController {
        }
    }

    boolean hasFixedRotationAnimation(@NonNull DisplayContent displayContent) {
        if (!mAnimationHandler.mComposed) {
            return false;
        }
        final ActivityRecord openActivity = mAnimationHandler.mOpenActivities[0];
        return displayContent == openActivity.mDisplayContent
                && displayContent.isFixedRotationLaunchingApp(openActivity);
    }

    private boolean isWaitBackTransition() {
        // Ignore mWaitTransition while flag is enabled.
        return mAnimationHandler.mComposed && (Flags.migratePredictiveBackTransition()