diff options
| author | 2024-12-17 02:04:51 -0800 | |
|---|---|---|
| committer | 2024-12-17 02:04:51 -0800 | |
| commit | c911c8ddc2093c86cb2b9ca27b2befc426dab244 (patch) | |
| tree | 01439de5c06a52b81eef992d1c0b721c16f7b3e1 | |
| parent | ddb8f939a3bda05305e06b77e4ab79def1a888d3 (diff) | |
| parent | 2ed3f59ce78ee1ac8fa14a1b543c253246c5f9b6 (diff) | |
Merge "Update display orientation if rotated app is not in transition" into main
| -rw-r--r-- | services/core/java/com/android/server/wm/DisplayContent.java | 12 | ||||
| -rw-r--r-- | services/tests/wmtests/src/com/android/server/wm/DisplayContentTests.java | 5 |
2 files changed, 17 insertions, 0 deletions
diff --git a/services/core/java/com/android/server/wm/DisplayContent.java b/services/core/java/com/android/server/wm/DisplayContent.java index f8086615b7d1..4dd950ba6ee9 100644 --- a/services/core/java/com/android/server/wm/DisplayContent.java +++ b/services/core/java/com/android/server/wm/DisplayContent.java @@ -2908,6 +2908,18 @@ class DisplayContent extends RootDisplayArea implements WindowManagerPolicy.Disp && !mDisplayRotation.isRotatingSeamlessly()) { clearFixedRotationLaunchingApp(); } + // If there won't be a transition to notify the launch is done, then it should be ready to + // update with display orientation. E.g. a translucent activity enters pip from a task which + // contains another opaque activity. + if (mFixedRotationLaunchingApp != null && mFixedRotationLaunchingApp.isVisible() + && !mTransitionController.isCollecting() + && !mAtmService.mBackNavigationController.isMonitoringFinishTransition()) { + final Transition finishTransition = mTransitionController.mFinishingTransition; + if (finishTransition == null || !finishTransition.mParticipants.contains( + mFixedRotationLaunchingApp)) { + continueUpdateOrientationForDiffOrienLaunchingApp(); + } + } } /** diff --git a/services/tests/wmtests/src/com/android/server/wm/DisplayContentTests.java b/services/tests/wmtests/src/com/android/server/wm/DisplayContentTests.java index a0a6622f4240..57aacd36b16b 100644 --- a/services/tests/wmtests/src/com/android/server/wm/DisplayContentTests.java +++ b/services/tests/wmtests/src/com/android/server/wm/DisplayContentTests.java @@ -1877,6 +1877,11 @@ public class DisplayContentTests extends WindowTestsBase { assertEquals("Display must be portrait after closing the translucent activity", Configuration.ORIENTATION_PORTRAIT, mDisplayContent.getConfiguration().orientation); + + mDisplayContent.setFixedRotationLaunchingAppUnchecked(nonTopVisible); + mDisplayContent.onTransitionFinished(); + assertFalse("Complete fixed rotation if not in a transition", + mDisplayContent.hasTopFixedRotationLaunchingApp()); } @Test |