diff --git a/services/core/java/com/android/server/policy/PhoneWindowManager.java b/services/core/java/com/android/server/policy/PhoneWindowManager.java index 85a2a5d0e0ebf..dbe049a8e18ec 100644 --- a/services/core/java/com/android/server/policy/PhoneWindowManager.java +++ b/services/core/java/com/android/server/policy/PhoneWindowManager.java @@ -1049,12 +1049,6 @@ public class PhoneWindowManager implements WindowManagerPolicy { return; } - // Make sure the device locks. Unfortunately, this has the side-effect of briefly revealing - // the lock screen before the dream appears. Note that this locking behavior needs to - // happen regardless of whether we end up dreaming (below) or not. - // TODO(b/261662912): Find a better way to lock the device that doesn't result in jank. - lockNow(null); - // Don't dream if the user isn't user zero. // TODO(b/261907079): Move this check to DreamManagerService#canStartDreamingInternal(). if (ActivityManager.getCurrentUser() != UserHandle.USER_SYSTEM) { @@ -1068,6 +1062,12 @@ public class PhoneWindowManager implements WindowManagerPolicy { return; } + // Make sure the device locks. Unfortunately, this has the side-effect of briefly revealing + // the lock screen before the dream appears. Note that locking is a side-effect of the no + // dream action that is executed if we early return above. + // TODO(b/261662912): Find a better way to lock the device that doesn't result in jank. + lockNow(null); + dreamManagerInternal.requestDream(); }