summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Michael Wright <michaelwr@google.com> 2021-08-18 16:28:02 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2021-08-18 16:28:02 +0000
commit10db7a419ce6c3f9e5be63f10dcf910d0d088910 (patch)
tree49ee9afbbb39a1e8d91a49c0e15095b688e04219
parent018e3d97d0d5b704c7fbaf6477c35e9b9d93b29d (diff)
parenta00cda677956e0553a6de4df8f25ebc9b2b3039e (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.java6
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) {