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

Commit d7bfe1f3 authored by Fiona Campbell's avatar Fiona Campbell
Browse files

Clean up BrightnessSynchronizer

Create a startSynchronizing() method rather than having this code in the
constructor. This makes it cleaner and its actions more explicit.

Bug: none
Test: manual
Change-Id: I6b84274639ad719ed877f1d04e6621717f860677
parent c78d5677
Loading
Loading
Loading
Loading
+17 −11
Original line number Diff line number Diff line
@@ -73,18 +73,26 @@ public class BrightnessSynchronizer {
        }
    };

    private float mPreferredSettingValue;

    public BrightnessSynchronizer(Context context) {
        final BrightnessSyncObserver mBrightnessSyncObserver;
        mContext = context;
        mBrightnessSyncObserver = new BrightnessSyncObserver(mHandler);
        mBrightnessSyncObserver.startObserving();
    }

    /**
     * Starts brightnessSyncObserver to ensure that the float and int brightness values stay
     * in sync.
     * This also ensures that values are synchronized at system start up too.
     * So we force an update to the int value, since float is the source of truth. Fallback to int
     * value, if float is invalid. If both are invalid, use default float value from config.
     */
    public void startSynchronizing() {
        final BrightnessSyncObserver brightnessSyncObserver;
        brightnessSyncObserver = new BrightnessSyncObserver(mHandler);
        brightnessSyncObserver.startObserving();

        // It is possible for the system to start up with the int and float values not
        // synchronized. So we force an update to the int value, since float is the source
        // of truth. Fallback to int value, if float is invalid. If both are invalid, use default
        // float value from config.
        final float currentFloatBrightness = getScreenBrightnessFloat(context);
        final int currentIntBrightness = getScreenBrightnessInt(context);
        final float currentFloatBrightness = getScreenBrightnessFloat(mContext);
        final int currentIntBrightness = getScreenBrightnessInt(mContext);

        if (!Float.isNaN(currentFloatBrightness)) {
            updateBrightnessIntFromFloat(currentFloatBrightness);
@@ -156,8 +164,6 @@ public class BrightnessSynchronizer {
                UserHandle.USER_CURRENT);
    }

    private float mPreferredSettingValue;

    /**
     * Updates the float setting based on a passed in int value. This is called whenever the int
     * setting changes. mWriteHistory keeps a record of the values that been written to the settings
+1 −0
Original line number Diff line number Diff line
@@ -417,6 +417,7 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
        mBlanker = blanker;
        mContext = context;
        mBrightnessSynchronizer = new BrightnessSynchronizer(context);
        mBrightnessSynchronizer.startSynchronizing();
        mDisplayId = displayId;

        PowerManager pm =  context.getSystemService(PowerManager.class);