PowerManagerService: Fix bug resulting in backlights turning on while screen is off.

Fixes bugs b/2216879 and b/2197060

Change-Id: I5de3cbdbc0601dd7950dba74cacfff06d41ad18e
Signed-off-by: Mike Lockwood <lockwood@android.com>
This commit is contained in:
Mike Lockwood
2009-10-27 09:32:30 -04:00
parent 8061f64f62
commit 2d155d264e

View File

@@ -2037,16 +2037,21 @@ class PowerManagerService extends IPowerManager.Stub
}
private void setScreenBrightnessMode(int mode) {
mAutoBrightessEnabled = (mode == SCREEN_BRIGHTNESS_MODE_AUTOMATIC);
// reset computed brightness
mLightSensorBrightness = -1;
boolean enabled = (mode == SCREEN_BRIGHTNESS_MODE_AUTOMATIC);
if (mAutoBrightessEnabled != enabled) {
mAutoBrightessEnabled = enabled;
// reset computed brightness
mLightSensorBrightness = -1;
if (mHasHardwareAutoBrightness) {
// When setting auto-brightness, must reset the brightness afterwards
mHardware.setAutoBrightness_UNCHECKED(mAutoBrightessEnabled);
setBacklightBrightness((int)mScreenBrightness.curValue);
} else {
enableLightSensor(screenIsOn() && mAutoBrightessEnabled);
if (mHasHardwareAutoBrightness) {
// When setting auto-brightness, must reset the brightness afterwards
mHardware.setAutoBrightness_UNCHECKED(enabled);
if (screenIsOn()) {
setBacklightBrightness((int)mScreenBrightness.curValue);
}
} else {
enableLightSensor(screenIsOn() && enabled);
}
}
}