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
This commit is contained in:
Fiona Campbell
2020-10-30 12:26:32 +00:00
parent c78d56770a
commit d7bfe1f310
2 changed files with 20 additions and 13 deletions

View File

@@ -73,18 +73,26 @@ public class BrightnessSynchronizer {
}
};
public BrightnessSynchronizer(Context context) {
final BrightnessSyncObserver mBrightnessSyncObserver;
mContext = context;
mBrightnessSyncObserver = new BrightnessSyncObserver(mHandler);
mBrightnessSyncObserver.startObserving();
private float mPreferredSettingValue;
// 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);
public BrightnessSynchronizer(Context context) {
mContext = context;
}
/**
* 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();
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

View File

@@ -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);