summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTreeHugger Robot <treehugger-gerrit@google.com>2019-08-22 00:22:43 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2019-08-22 00:22:43 +0000
commit48a86feefe0a5ca4b53155806131eb94d749599e (patch)
tree78aa60fbc061eff199eafb7981cd871cfb0c3976
parent255777af564d75b098b7616984ec11eafa6c6e81 (diff)
parent93e164726f2d243eb75351b4e52d683573f9f802 (diff)
downloadbase-48a86feefe0a5ca4b53155806131eb94d749599e.tar.gz
Merge "Hold Display suspend blocker until doze starts" into qt-r1-dev
-rw-r--r--services/core/java/com/android/server/power/PowerManagerService.java11
1 files changed, 11 insertions, 0 deletions
diff --git a/services/core/java/com/android/server/power/PowerManagerService.java b/services/core/java/com/android/server/power/PowerManagerService.java
index aa49ba62f48b..dc56b03bb100 100644
--- a/services/core/java/com/android/server/power/PowerManagerService.java
+++ b/services/core/java/com/android/server/power/PowerManagerService.java
@@ -2735,6 +2735,17 @@ public final class PowerManagerService extends SystemService
if (mScreenBrightnessBoostInProgress) {
return true;
}
+
+ // Because summoning the sandman is asyncronous, there is a time-gap where
+ // we release the display suspend blocker before the dream service acquires
+ // their own wakelock. Within this gap, we can end up suspending before
+ // dream service has a chance to start. To avoid this, we check if we want
+ // to doze and the sandman is scheduled and if so, keep the display on until
+ // that has passed.
+ if (mWakefulness == WAKEFULNESS_DOZING && mSandmanScheduled) {
+ return true;
+ }
+
// Let the system suspend if the screen is off or dozing.
return false;
}