diff options
4 files changed, 15 insertions, 2 deletions
diff --git a/core/res/res/values/config.xml b/core/res/res/values/config.xml index 479a2753facb..49f77a01c9cf 100644 --- a/core/res/res/values/config.xml +++ b/core/res/res/values/config.xml @@ -1862,6 +1862,9 @@ <!-- Whether the display blanks itself when transitioning from a doze to a non-doze state --> <bool name="config_displayBlanksAfterDoze">false</bool> + <!-- True if the display hardware only has brightness buckets rather than a full range of + backlight values --> + <bool name="config_displayBrightnessBucketsInDoze">false</bool> <!-- Power Management: Specifies whether to decouple the auto-suspend state of the device from the display on/off state. diff --git a/core/res/res/values/symbols.xml b/core/res/res/values/symbols.xml index d738556b4359..f2c05c8ee361 100644 --- a/core/res/res/values/symbols.xml +++ b/core/res/res/values/symbols.xml @@ -3049,6 +3049,7 @@ <java-symbol type="integer" name="config_inCallNotificationVolumeRelative" /> <java-symbol type="bool" name="config_dozeAlwaysOnDisplayAvailable" /> <java-symbol type="bool" name="config_displayBlanksAfterDoze" /> + <java-symbol type="bool" name="config_displayBrightnessBucketsInDoze" /> <java-symbol type="integer" name="config_storageManagerDaystoRetainDefault" /> <java-symbol type="string" name="config_headlineFontFamily" /> <java-symbol type="string" name="config_headlineFontFamilyLight" /> diff --git a/services/core/java/com/android/server/display/DisplayPowerController.java b/services/core/java/com/android/server/display/DisplayPowerController.java index e858edb84d69..6e6e7d112d83 100644 --- a/services/core/java/com/android/server/display/DisplayPowerController.java +++ b/services/core/java/com/android/server/display/DisplayPowerController.java @@ -171,6 +171,12 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call // blank itself and begin an appropriate power on animation. private boolean mDisplayBlanksAfterDozeConfig; + // True if there are only buckets of brightness values when the display is in the doze state, + // rather than a full range of values. If this is true, then we'll avoid animating the screen + // brightness since it'd likely be multiple jarring brightness transitions instead of just one + // to reach the final state. + private boolean mBrightnessBucketsInDozeConfig; + // The pending power request. // Initially null until the first call to requestPowerState. // Guarded by mLock. @@ -419,6 +425,9 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call mDisplayBlanksAfterDozeConfig = resources.getBoolean( com.android.internal.R.bool.config_displayBlanksAfterDoze); + mBrightnessBucketsInDozeConfig = resources.getBoolean( + com.android.internal.R.bool.config_displayBrightnessBucketsInDoze); + if (!DEBUG_PRETEND_PROXIMITY_SENSOR_ABSENT) { mProximitySensor = mSensorManager.getDefaultSensor(Sensor.TYPE_PROXIMITY); if (mProximitySensor != null) { @@ -780,7 +789,7 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call boolean wasOrWillBeInVr = (state == Display.STATE_VR || oldState == Display.STATE_VR); if ((state == Display.STATE_ON && mSkipRampState == RAMP_STATE_SKIP_NONE - || state == Display.STATE_DOZE) + || state == Display.STATE_DOZE && !mBrightnessBucketsInDozeConfig) && !wasOrWillBeInVr) { animateScreenBrightness(brightness, slowChange ? mBrightnessRampRateSlow : mBrightnessRampRateFast); diff --git a/services/core/java/com/android/server/display/DisplayPowerState.java b/services/core/java/com/android/server/display/DisplayPowerState.java index 7b55ec10097b..efa4a1d4f501 100644 --- a/services/core/java/com/android/server/display/DisplayPowerState.java +++ b/services/core/java/com/android/server/display/DisplayPowerState.java @@ -332,7 +332,7 @@ final class DisplayPowerState { if (mColorFadePrepared) { mColorFade.draw(mColorFadeLevel); Trace.traceCounter(Trace.TRACE_TAG_POWER, - COUNTER_COLOR_FADE, Math.round(mColorFadeLevel* 100)); + COUNTER_COLOR_FADE, Math.round(mColorFadeLevel * 100)); } mColorFadeReady = true; |