summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author William Leshner <wleshner@google.com> 2022-12-10 03:52:47 +0000
committer Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> 2022-12-10 03:52:47 +0000
commitbc77c0a8b1c3f65aa66cc38e4a5bcfbbac2a7c9f (patch)
treec3899db08ec959d297ab5fe0dd682eb88dc36af0
parenta2907066179cc7fd7be870edf73dc5f178b12dd5 (diff)
parent37929e00a5adf1e3e43a8f544230a8e3d546f262 (diff)
Merge "Lock device on short power button press." into tm-qpr-dev am: 37929e00a5
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/20583933 Change-Id: I2494354420ebfe49315462a9728641d2cba48eb6 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
-rw-r--r--services/core/java/com/android/server/policy/PhoneWindowManager.java13
1 files changed, 13 insertions, 0 deletions
diff --git a/services/core/java/com/android/server/policy/PhoneWindowManager.java b/services/core/java/com/android/server/policy/PhoneWindowManager.java
index 9b4498f7bb7e..a154552914be 100644
--- a/services/core/java/com/android/server/policy/PhoneWindowManager.java
+++ b/services/core/java/com/android/server/policy/PhoneWindowManager.java
@@ -1051,6 +1051,19 @@ 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) {
+ noDreamAction.run();
+ return;
+ }
+
final DreamManagerInternal dreamManagerInternal = getDreamManagerInternal();
if (dreamManagerInternal == null || !dreamManagerInternal.canStartDreaming(isScreenOn)) {
noDreamAction.run();