Fix slider being at 0 on unlock

This was happening due to a change that sourced the brightness value
from the brightnessInfo object, which includes brightness state
(invalid and -1/off) as well.

This change ensures the brightnessInfo object will only store valid
brightness values (ie, when the display is ON, and therefore the
brightness is between min & max).

Bug: 187776200
Test: manual
Change-Id: I6b7077da1354f0b21c570f4e2283aa6830dbdb93
This commit is contained in:
Fiona Campbell
2021-06-03 15:54:12 +01:00
parent 8968116543
commit 4384409dae

View File

@@ -941,6 +941,7 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
final boolean mustNotify;
final int previousPolicy;
boolean mustInitialize = false;
boolean shouldSaveBrightnessInfo = true;
int brightnessAdjustmentFlags = 0;
mBrightnessReasonTemp.set(null);
synchronized (mLock) {
@@ -1071,6 +1072,7 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
if (state == Display.STATE_OFF) {
brightnessState = PowerManager.BRIGHTNESS_OFF_FLOAT;
mBrightnessReasonTemp.setReason(BrightnessReason.REASON_SCREEN_OFF);
shouldSaveBrightnessInfo = false;
}
// Always use the VR brightness when in the VR state.
@@ -1197,6 +1199,7 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
&& Display.isDozeState(state)) {
brightnessState = mScreenBrightnessDozeConfig;
mBrightnessReasonTemp.setReason(BrightnessReason.REASON_DOZE_DEFAULT);
shouldSaveBrightnessInfo = false;
}
// Apply manual brightness.
@@ -1213,7 +1216,10 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
// Save out the brightness info now that the brightness state for this iteration has been
// finalized and before we send out notifications about the brightness changing.
saveBrightnessInfo(brightnessState);
if (shouldSaveBrightnessInfo) {
saveBrightnessInfo(brightnessState);
}
if (updateScreenBrightnessSetting) {
// Tell the rest of the system about the new brightness in case we had to change it