diff --git a/services/core/java/com/android/server/policy/PhoneWindowManager.java b/services/core/java/com/android/server/policy/PhoneWindowManager.java index a154552914be0..db7a2f98111e0 100644 --- a/services/core/java/com/android/server/policy/PhoneWindowManager.java +++ b/services/core/java/com/android/server/policy/PhoneWindowManager.java @@ -1051,12 +1051,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) { @@ -1070,6 +1064,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(); }