Fix inconsistency in how we handle light sensor when battery is low.

In lightSensorChangedLocked we ignore the light sensor if the battery is low.
But in applyButtonState() and applyKeyboardState() we were still using the previous
mLightSensorScreenBrightness value, which resulted in a race condition that could
leave the button lights on after the screen turns off.
Now we ignore the light sensor value and button brightness override if the battery
is low so the low battery behavior is consistent.

Change-Id: I4943f8904299883211a95596ee207df69d1eaea2
BUG: 2570962

Signed-off-by: Mike Lockwood <lockwood@android.com>
This commit is contained in:
Mike Lockwood
2010-04-17 22:29:20 -04:00
parent 3c44db3f67
commit 48358bd5c1

View File

@@ -1730,7 +1730,7 @@ class PowerManagerService extends IPowerManager.Stub
}
if (offMask != 0) {
//Slog.i(TAG, "Setting brightess off: " + offMask);
if (mSpew) Slog.i(TAG, "Setting brightess off: " + offMask);
setLightBrightness(offMask, Power.BRIGHTNESS_OFF);
}
if (dimMask != 0) {
@@ -1739,7 +1739,7 @@ class PowerManagerService extends IPowerManager.Stub
brightness > Power.BRIGHTNESS_LOW_BATTERY) {
brightness = Power.BRIGHTNESS_LOW_BATTERY;
}
//Slog.i(TAG, "Setting brightess dim " + brightness + ": " + offMask);
if (mSpew) Slog.i(TAG, "Setting brightess dim " + brightness + ": " + dimMask);
setLightBrightness(dimMask, brightness);
}
if (onMask != 0) {
@@ -1748,7 +1748,7 @@ class PowerManagerService extends IPowerManager.Stub
brightness > Power.BRIGHTNESS_LOW_BATTERY) {
brightness = Power.BRIGHTNESS_LOW_BATTERY;
}
//Slog.i(TAG, "Setting brightess on " + brightness + ": " + onMask);
if (mSpew) Slog.i(TAG, "Setting brightess on " + brightness + ": " + onMask);
setLightBrightness(onMask, brightness);
}
}
@@ -1883,6 +1883,10 @@ class PowerManagerService extends IPowerManager.Stub
private int applyButtonState(int state) {
int brightness = -1;
if ((state & BATTERY_LOW_BIT) != 0) {
// do not override brightness if the battery is low
return state;
}
if (mButtonBrightnessOverride >= 0) {
brightness = mButtonBrightnessOverride;
} else if (mLightSensorButtonBrightness >= 0 && mUseSoftwareAutoBrightness) {
@@ -1899,6 +1903,10 @@ class PowerManagerService extends IPowerManager.Stub
private int applyKeyboardState(int state) {
int brightness = -1;
if ((state & BATTERY_LOW_BIT) != 0) {
// do not override brightness if the battery is low
return state;
}
if (!mKeyboardVisible) {
brightness = 0;
} else if (mButtonBrightnessOverride >= 0) {