diff options
| -rw-r--r-- | services/core/java/com/android/server/am/ActivityStack.java | 10 | ||||
| -rw-r--r-- | services/core/java/com/android/server/wm/DisplayContent.java | 4 | 
2 files changed, 13 insertions, 1 deletions
diff --git a/services/core/java/com/android/server/am/ActivityStack.java b/services/core/java/com/android/server/am/ActivityStack.java index eb3177a6e1c9..c67b0d88147d 100644 --- a/services/core/java/com/android/server/am/ActivityStack.java +++ b/services/core/java/com/android/server/am/ActivityStack.java @@ -2580,6 +2580,16 @@ class ActivityStack<T extends StackWindowController> extends ConfigurationContai              // the screen based on the new activity order.              boolean notUpdated = true;              if (mStackSupervisor.isFocusedStack(this)) { + +                // We have special rotation behavior when Keyguard is locked. Make sure all activity +                // visibilities are set correctly as well as the transition is updated if needed to +                // get the correct rotation behavior. +                // TODO: Remove this once visibilities are set correctly immediately when starting +                // an activity. +                if (mStackSupervisor.mKeyguardController.isKeyguardLocked()) { +                    mStackSupervisor.ensureActivitiesVisibleLocked(null /* starting */, +                            0 /* configChanges */, false /* preserveWindows */); +                }                  final Configuration config = mWindowManager.updateOrientationFromAppTokens(                          mStackSupervisor.getDisplayOverrideConfiguration(mDisplayId),                          next.mayFreezeScreenLocked(next.app) ? next.appToken : null, mDisplayId); diff --git a/services/core/java/com/android/server/wm/DisplayContent.java b/services/core/java/com/android/server/wm/DisplayContent.java index f0a375bf29f4..266ebf3df851 100644 --- a/services/core/java/com/android/server/wm/DisplayContent.java +++ b/services/core/java/com/android/server/wm/DisplayContent.java @@ -57,6 +57,7 @@ import static android.view.WindowManagerPolicy.FINISH_LAYOUT_REDO_ANIM;  import static android.view.WindowManagerPolicy.FINISH_LAYOUT_REDO_CONFIG;  import static android.view.WindowManagerPolicy.FINISH_LAYOUT_REDO_LAYOUT;  import static android.view.WindowManagerPolicy.FINISH_LAYOUT_REDO_WALLPAPER; +import static com.android.server.wm.AppTransition.TRANSIT_KEYGUARD_UNOCCLUDE;  import static com.android.server.wm.WindowManagerDebugConfig.DEBUG_ADD_REMOVE;  import static com.android.server.wm.WindowManagerDebugConfig.DEBUG_BOOT;  import static com.android.server.wm.WindowManagerDebugConfig.DEBUG_DISPLAY; @@ -3554,7 +3555,8 @@ class DisplayContent extends WindowContainer<DisplayContent.DisplayChildWindowCo              mLastWindowForcedOrientation = SCREEN_ORIENTATION_UNSPECIFIED; -            if (policy.isKeyguardShowingAndNotOccluded()) { +            if (policy.isKeyguardShowingAndNotOccluded() +                    || mService.mAppTransition.getAppTransition() == TRANSIT_KEYGUARD_UNOCCLUDE) {                  return mLastKeyguardForcedOrientation;              }  |