Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit bf4e414c authored by Jeff Brown's avatar Jeff Brown
Browse files

Fix a bug with screen brightness during screen off animation.

Due to a recent change there was a regression that caused the
screen brightness to be animated down to 0 while the screen
off animation was running.  When the brightness was low this
would cause the screen off animation to be cut short.

This change ensures that we take into account the actual screen
state instead of the desired screen state when making screen
brightness decisions in case we are in the middle of a transition.

The darkness came early.  The pixel fairies trembled.

Bug: 17718416
Change-Id: Ib4b55d61b359abbc70920e324f08a5db07bdd035
parent 134b62ed
Loading
Loading
Loading
Loading
+7 −5
Original line number Diff line number Diff line
@@ -563,6 +563,12 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
            state = Display.STATE_OFF;
        }

        // Animate the screen state change unless already animating.
        // The transition may be deferred, so after this point we will use the
        // actual state instead of the desired one.
        animateScreenStateChange(state, performScreenOffTransition);
        state = mPowerState.getScreenState();

        // Use zero brightness when screen is off.
        if (state == Display.STATE_OFF) {
            brightness = PowerManager.BRIGHTNESS_OFF;
@@ -636,13 +642,9 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
            mAppliedLowPower = true;
        }

        // Animate the screen state change unless already animating.
        animateScreenStateChange(state, performScreenOffTransition);

        // Animate the screen brightness when the screen is on or dozing.
        // Skip the animation when the screen is off or suspended.
        final int actualState = mPowerState.getScreenState();
        if (actualState == Display.STATE_ON || actualState == Display.STATE_DOZE) {
        if (state == Display.STATE_ON || state == Display.STATE_DOZE) {
            animateScreenBrightness(brightness,
                    slowChange ? BRIGHTNESS_RAMP_RATE_SLOW : BRIGHTNESS_RAMP_RATE_FAST);
        } else {