Don't animate screen brightness if there is a pending off transition
When the DisplayPowerRequest policy is POLICY_OFF, a screen state transition animation to DISPLAY_OFF is intiated. However, in updatePowerState() the screen brightness setting, based on the current display state, is set to normal brightness and an animation is triggered. This causes a transient flash on some devices, which are transitioning from a dimmed screen to screen off. This change checks for a pending screen off transition before triggering a screen brightness animation, to prevent the flashes. Bug: 18136235 Change-Id: I37f9fb28b3ec8a4fdbb45920c40d25ebd50c220b
This commit is contained in:
@@ -654,11 +654,13 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
|
||||
|
||||
// Animate the screen brightness when the screen is on or dozing.
|
||||
// Skip the animation when the screen is off or suspended.
|
||||
if (state == Display.STATE_ON || state == Display.STATE_DOZE) {
|
||||
animateScreenBrightness(brightness,
|
||||
slowChange ? BRIGHTNESS_RAMP_RATE_SLOW : BRIGHTNESS_RAMP_RATE_FAST);
|
||||
} else {
|
||||
animateScreenBrightness(brightness, 0);
|
||||
if (!mPendingScreenOff) {
|
||||
if (state == Display.STATE_ON || state == Display.STATE_DOZE) {
|
||||
animateScreenBrightness(brightness,
|
||||
slowChange ? BRIGHTNESS_RAMP_RATE_SLOW : BRIGHTNESS_RAMP_RATE_FAST);
|
||||
} else {
|
||||
animateScreenBrightness(brightness, 0);
|
||||
}
|
||||
}
|
||||
|
||||
// Determine whether the display is ready for use in the newly requested state.
|
||||
|
||||
Reference in New Issue
Block a user