From e1fd49b550cfb48da61b00647bf752dde385eabc Mon Sep 17 00:00:00 2001 From: Riddle Hsu Date: Thu, 6 Jul 2023 17:09:59 +0000 Subject: Clean up stale fixed rotation state This restores original logic that was not called in new transition architecture. The fail safe condition is still needed to make sure the windows won't wait for an outdated orientation switch. Bug: 289196433 Test: Rapidly switch activities in different orientations. The system window should not disappear permanently. Change-Id: Id1148dbfea349dad6c6057b24509bbc4e66ab1dd --- services/core/java/com/android/server/wm/DisplayContent.java | 4 ++++ services/core/java/com/android/server/wm/Transition.java | 1 + 2 files changed, 5 insertions(+) diff --git a/services/core/java/com/android/server/wm/DisplayContent.java b/services/core/java/com/android/server/wm/DisplayContent.java index cb7414e2e86e..2309e5891a30 100644 --- a/services/core/java/com/android/server/wm/DisplayContent.java +++ b/services/core/java/com/android/server/wm/DisplayContent.java @@ -2751,6 +2751,10 @@ class DisplayContent extends RootDisplayArea implements WindowManagerPolicy.Disp void onAppTransitionDone() { super.onAppTransitionDone(); mWmService.mWindowsChanged = true; + onTransitionFinished(); + } + + void onTransitionFinished() { // If the transition finished callback cannot match the token for some reason, make sure the // rotated state is cleared if it is already invisible. if (mFixedRotationLaunchingApp != null && !mFixedRotationLaunchingApp.isVisibleRequested() diff --git a/services/core/java/com/android/server/wm/Transition.java b/services/core/java/com/android/server/wm/Transition.java index 71192cd5a3be..6cd1fb3f9a9b 100644 --- a/services/core/java/com/android/server/wm/Transition.java +++ b/services/core/java/com/android/server/wm/Transition.java @@ -1298,6 +1298,7 @@ class Transition implements BLASTSyncEngine.TransactionReadyListener { if (asyncRotationController != null && containsChangeFor(dc, mTargets)) { asyncRotationController.onTransitionFinished(); } + dc.onTransitionFinished(); if (hasParticipatedDisplay && dc.mDisplayRotationCompatPolicy != null) { final ChangeInfo changeInfo = mChanges.get(dc); if (changeInfo != null -- cgit v1.2.3-59-g8ed1b