diff options
| author | 2021-08-18 16:28:02 +0000 | |
|---|---|---|
| committer | 2021-08-18 16:28:02 +0000 | |
| commit | 10db7a419ce6c3f9e5be63f10dcf910d0d088910 (patch) | |
| tree | 49ee9afbbb39a1e8d91a49c0e15095b688e04219 | |
| parent | 018e3d97d0d5b704c7fbaf6477c35e9b9d93b29d (diff) | |
| parent | a00cda677956e0553a6de4df8f25ebc9b2b3039e (diff) | |
Merge "Only update the display when brightness and state are valid." into sc-dev
| -rw-r--r-- | services/core/java/com/android/server/display/DisplayPowerState.java | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/services/core/java/com/android/server/display/DisplayPowerState.java b/services/core/java/com/android/server/display/DisplayPowerState.java index 6af192371e3d..147050cd271f 100644 --- a/services/core/java/com/android/server/display/DisplayPowerState.java +++ b/services/core/java/com/android/server/display/DisplayPowerState.java @@ -411,7 +411,7 @@ final class DisplayPowerState { * Updates the state of the screen and backlight asynchronously on a separate thread. */ private final class PhotonicModulator extends Thread { - private static final int INITIAL_SCREEN_STATE = Display.STATE_OFF; // unknown, assume off + private static final int INITIAL_SCREEN_STATE = Display.STATE_UNKNOWN; private static final float INITIAL_BACKLIGHT_FLOAT = PowerManager.BRIGHTNESS_INVALID_FLOAT; private final Object mLock = new Object(); @@ -494,7 +494,9 @@ final class DisplayPowerState { if (!backlightChanged) { mBacklightChangeInProgress = false; } - if (!stateChanged && !backlightChanged) { + boolean valid = state != Display.STATE_UNKNOWN && !Float.isNaN(brightnessState); + boolean changed = stateChanged || backlightChanged; + if (!valid || !changed) { try { mLock.wait(); } catch (InterruptedException ex) { |