summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--services/core/java/com/android/server/wm/AsyncRotationController.java2
-rw-r--r--services/core/java/com/android/server/wm/DisplayContent.java11
2 files changed, 9 insertions, 4 deletions
diff --git a/services/core/java/com/android/server/wm/AsyncRotationController.java b/services/core/java/com/android/server/wm/AsyncRotationController.java
index 6ed896751bb3..e7fb26550886 100644
--- a/services/core/java/com/android/server/wm/AsyncRotationController.java
+++ b/services/core/java/com/android/server/wm/AsyncRotationController.java
@@ -642,7 +642,7 @@ 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)) {
+ && canBeAsync(w.mToken) && !mDisplayContent.hasFixedRotationTransientLaunch()) {
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/DisplayContent.java b/services/core/java/com/android/server/wm/DisplayContent.java
index 837d08b33756..cabab6548615 100644
--- a/services/core/java/com/android/server/wm/DisplayContent.java
+++ b/services/core/java/com/android/server/wm/DisplayContent.java
@@ -1950,6 +1950,12 @@ class DisplayContent extends RootDisplayArea implements WindowManagerPolicy.Disp
&& mFixedRotationLaunchingApp != mFixedRotationTransitionListener.mAnimatingRecents;
}
+ /** It usually means whether the recents activity is launching with a different rotation. */
+ boolean hasFixedRotationTransientLaunch() {
+ return mFixedRotationLaunchingApp != null
+ && mTransitionController.isTransientLaunch(mFixedRotationLaunchingApp);
+ }
+
boolean isFixedRotationLaunchingApp(ActivityRecord r) {
return mFixedRotationLaunchingApp == r;
}
@@ -7013,9 +7019,8 @@ class DisplayContent extends RootDisplayArea implements WindowManagerPolicy.Disp
boolean shouldDeferRotation() {
ActivityRecord source = null;
if (mTransitionController.isShellTransitionsEnabled()) {
- final ActivityRecord r = mFixedRotationLaunchingApp;
- if (r != null && mTransitionController.isTransientLaunch(r)) {
- source = r;
+ if (hasFixedRotationTransientLaunch()) {
+ source = mFixedRotationLaunchingApp;
}
} else if (mAnimatingRecents != null && !hasTopFixedRotationLaunchingApp()) {
source = mAnimatingRecents;