summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author wilsonshih <wilsonshih@google.com> 2024-11-27 07:32:08 +0000
committer Wei Sheng Shih <wilsonshih@google.com> 2024-11-27 07:53:33 +0000
commitd3414b06d68d27e4c0377d3577a75e7e29bf08ac (patch)
treea14696e99bc02c2027ad0c68d27d23fc2716c67d
parentfe30fc14e845dd51401bccc6a4796c8d7fdd7b8a (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.java4
-rw-r--r--services/core/java/com/android/server/wm/BackNavigationController.java9
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()