summaryrefslogtreecommitdiffstats
path: root/services
diff options
context:
space:
mode:
authorMike Lockwood <lockwood@android.com>2009-10-27 09:32:30 -0400
committerMike Lockwood <lockwood@android.com>2009-10-27 09:47:50 -0400
commit2d155d264e5cefc27abf2c5020fcfa06bde755ec (patch)
tree4d5f5985c113447ba3c50a442cc524e9022417dc /services
parent8061f64f6246116381131fc7951b6d88be37161a (diff)
downloadframeworks_base-2d155d264e5cefc27abf2c5020fcfa06bde755ec.zip
frameworks_base-2d155d264e5cefc27abf2c5020fcfa06bde755ec.tar.gz
frameworks_base-2d155d264e5cefc27abf2c5020fcfa06bde755ec.tar.bz2
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>
Diffstat (limited to 'services')
-rw-r--r--services/java/com/android/server/PowerManagerService.java25
1 files changed, 15 insertions, 10 deletions
diff --git a/services/java/com/android/server/PowerManagerService.java b/services/java/com/android/server/PowerManagerService.java
index f3a91e7..5c4aa79 100644
--- a/services/java/com/android/server/PowerManagerService.java
+++ b/services/java/com/android/server/PowerManagerService.java
@@ -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;
-
- if (mHasHardwareAutoBrightness) {
- // When setting auto-brightness, must reset the brightness afterwards
- mHardware.setAutoBrightness_UNCHECKED(mAutoBrightessEnabled);
- setBacklightBrightness((int)mScreenBrightness.curValue);
- } else {
- enableLightSensor(screenIsOn() && mAutoBrightessEnabled);
+ 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(enabled);
+ if (screenIsOn()) {
+ setBacklightBrightness((int)mScreenBrightness.curValue);
+ }
+ } else {
+ enableLightSensor(screenIsOn() && enabled);
+ }
}
}