From 7b7621f5cd26d72ad5c5eda8ea59643b01dec3cc Mon Sep 17 00:00:00 2001 From: Sean Stout Date: Fri, 23 Apr 2021 14:34:33 -0700 Subject: [PATCH] Fix screen not turning off correctly. If a device was not set to doze after sleep, it was possible to hit the power button and for the display to not turn off. This change makes the display go to the off state if there is another display which is currently on in this scenario. Test: manual - Use device with external display. Hit power button. Detach external display. Bug: 185934103 Change-Id: I6412955ee44d13c4fbab4167f4f3a26415441983 --- .../java/com/android/server/power/PowerManagerService.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/services/core/java/com/android/server/power/PowerManagerService.java b/services/core/java/com/android/server/power/PowerManagerService.java index c4aca6c184536..03722cd9afb4e 100644 --- a/services/core/java/com/android/server/power/PowerManagerService.java +++ b/services/core/java/com/android/server/power/PowerManagerService.java @@ -2956,8 +2956,7 @@ public final class PowerManagerService extends SystemService // Group has been removed. return; } - // TODO (b/175764708): Support per-display doze. - wakefulness = getWakefulnessLocked(); + wakefulness = mDisplayGroupPowerStateMapper.getWakefulnessLocked(groupId); if ((wakefulness == WAKEFULNESS_DREAMING || wakefulness == WAKEFULNESS_DOZING) && mDisplayGroupPowerStateMapper.isSandmanSummoned(groupId) && mDisplayGroupPowerStateMapper.isReady(groupId)) { @@ -3099,6 +3098,7 @@ public final class PowerManagerService extends SystemService * Returns true if the device is allowed to doze in its current state. */ private boolean canDozeLocked() { + // TODO (b/175764708): Support per-display doze. return getWakefulnessLocked() == WAKEFULNESS_DOZING; }