diff options
author | 2024-11-27 07:32:08 +0000 | |
---|---|---|
committer | 2024-11-27 07:53:33 +0000 | |
commit | d3414b06d68d27e4c0377d3577a75e7e29bf08ac (patch) | |
tree | a14696e99bc02c2027ad0c68d27d23fc2716c67d | |
parent | fe30fc14e845dd51401bccc6a4796c8d7fdd7b8a (diff) |
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
-rw-r--r-- | services/core/java/com/android/server/wm/AsyncRotationController.java | 4 | ||||
-rw-r--r-- | services/core/java/com/android/server/wm/BackNavigationController.java | 9 |
2 files changed, 12 insertions, 1 deletions
diff --git a/services/core/java/com/android/server/wm/AsyncRotationController.java b/services/core/java/com/android/server/wm/AsyncRotationController.java index f0a6e9ec1d4f..dd1af0a497ca 100644 --- a/services/core/java/com/android/server/wm/AsyncRotationController.java +++ b/services/core/java/com/android/server/wm/AsyncRotationController.java @@ -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()); } diff --git a/services/core/java/com/android/server/wm/BackNavigationController.java b/services/core/java/com/android/server/wm/BackNavigationController.java index 4ed8b09cd652..3968b525f11d 100644 --- a/services/core/java/com/android/server/wm/BackNavigationController.java +++ b/services/core/java/com/android/server/wm/BackNavigationController.java @@ -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() |