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

Commit 0ce5c2dc authored by Fiona Campbell's avatar Fiona Campbell
Browse files

BrightnessChangeEvent works for increasing brightness

BrightnessChangeEvents were only sending when decreasing the brightness.
Due to two issues:
1) brightness adjustment was being clamped to 0-1 instead of -1 to +1.
(meaning buggy conditions were met when 0.0 == 0.0)
2) the brightness reason that was being read was the old reason,
rather than the temporary (new) reason (meaning we were not sending
change events correctly).

Bug: 282005647
Test: adb shell dumpsys | grep BrightnessChangeEvent
Change-Id: I2ada97469b68baee695e06db0c8a0cdbbab1027f
parent d02f519e
Loading
Loading
Loading
Loading
+1 −9
Original line number Diff line number Diff line
@@ -1454,7 +1454,7 @@ final class DisplayPowerController2 implements AutomaticBrightnessController.Cal
        // Skip the animation when the screen is off or suspended.
        boolean brightnessAdjusted = false;
        final boolean brightnessIsTemporary =
                (mBrightnessReason.getReason() == BrightnessReason.REASON_TEMPORARY)
                (mBrightnessReasonTemp.getReason() == BrightnessReason.REASON_TEMPORARY)
                        || mAutomaticBrightnessStrategy
                        .isTemporaryAutoBrightnessAdjustmentApplied();
        if (!mPendingScreenOff) {
@@ -2159,11 +2159,6 @@ final class DisplayPowerController2 implements AutomaticBrightnessController.Cal
        }, mClock.uptimeMillis());
    }

    private float getAutoBrightnessAdjustmentSetting() {
        final float adj = Settings.System.getFloatForUser(mContext.getContentResolver(),
                Settings.System.SCREEN_AUTO_BRIGHTNESS_ADJ, 0.0f, UserHandle.USER_CURRENT);
        return Float.isNaN(adj) ? 0.0f : clampAutoBrightnessAdjustment(adj);
    }

    @Override
    public float getScreenBrightnessSetting() {
@@ -2436,9 +2431,6 @@ final class DisplayPowerController2 implements AutomaticBrightnessController.Cal
        }
    }

    private static float clampAutoBrightnessAdjustment(float value) {
        return MathUtils.constrain(value, -1.0f, 1.0f);
    }

    private void noteScreenState(int screenState) {
        // Log screen state change with display id
+7 −0
Original line number Diff line number Diff line
@@ -41,6 +41,13 @@ public final class BrightnessUtils {
                PowerManager.BRIGHTNESS_MAX);
    }

    /**
     * Clamps the brightness value in the maximum and the minimum brightness adjustment range
     */
    public static float clampBrightnessAdjustment(float value) {
        return MathUtils.constrain(value, -1.0f, 1.0f);
    }

    /**
     * A utility to construct the DisplayBrightnessState
     */
+2 −2
Original line number Diff line number Diff line
@@ -202,7 +202,7 @@ public class AutomaticBrightnessStrategy {
        final float adj = Settings.System.getFloatForUser(mContext.getContentResolver(),
                Settings.System.SCREEN_AUTO_BRIGHTNESS_ADJ, 0.0f, UserHandle.USER_CURRENT);
        mPendingAutoBrightnessAdjustment = Float.isNaN(adj) ? Float.NaN
                : BrightnessUtils.clampAbsoluteBrightness(adj);
                : BrightnessUtils.clampBrightnessAdjustment(adj);
        if (userSwitch) {
            processPendingAutoBrightnessAdjustments();
        }
@@ -402,6 +402,6 @@ public class AutomaticBrightnessStrategy {
    private float getAutoBrightnessAdjustmentSetting() {
        final float adj = Settings.System.getFloatForUser(mContext.getContentResolver(),
                Settings.System.SCREEN_AUTO_BRIGHTNESS_ADJ, 0.0f, UserHandle.USER_CURRENT);
        return Float.isNaN(adj) ? 0.0f : BrightnessUtils.clampAbsoluteBrightness(adj);
        return Float.isNaN(adj) ? 0.0f : BrightnessUtils.clampBrightnessAdjustment(adj);
    }
}