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

Commit 29defc3d authored by Fabian Kozynski's avatar Fabian Kozynski
Browse files

Do not post a change in brightness if temporary

While the user is dragging the slider, temporary brightness is set. In
this case, we should not post to the listener or it may trigger unwanted
animations.

Test: manual, drag slider and hold
Fixes: 232891167
Change-Id: I723fc74cf0c305247563cc6f2afb2b74d671f83d
parent 928a1ea2
Loading
Loading
Loading
Loading
+4 −3
Original line number Diff line number Diff line
@@ -1500,6 +1500,8 @@ 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 or transition to/from VR.
        boolean brightnessAdjusted = false;
        final boolean brightnessIsTemporary =
                mAppliedTemporaryBrightness || mAppliedTemporaryAutoBrightnessAdjustment;
        if (!mPendingScreenOff) {
            if (mSkipScreenOnBrightnessRamp) {
                if (state == Display.STATE_ON) {
@@ -1532,8 +1534,6 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
            // level without it being a noticeable jump since any actual content isn't yet visible.
            final boolean isDisplayContentVisible =
                    mColorFadeEnabled && mPowerState.getColorFadeLevel() == 1.0f;
            final boolean brightnessIsTemporary =
                    mAppliedTemporaryBrightness || mAppliedTemporaryAutoBrightnessAdjustment;
            // We only want to animate the brightness if it is between 0.0f and 1.0f.
            // brightnessState can contain the values -1.0f and NaN, which we do not want to
            // animate to. To avoid this, we check the value first.
@@ -1605,7 +1605,8 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
            brightnessAdjusted = saveBrightnessInfo(getScreenBrightnessSetting());
        }

        if (brightnessAdjusted) {
        // Only notify if the brightness adjustment is not temporary (i.e. slider has been released)
        if (brightnessAdjusted && !brightnessIsTemporary) {
            postBrightnessChangeRunnable();
        }