From 2d155d264e5cefc27abf2c5020fcfa06bde755ec Mon Sep 17 00:00:00 2001 From: Mike Lockwood Date: Tue, 27 Oct 2009 09:32:30 -0400 Subject: [PATCH] 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 --- .../com/android/server/PowerManagerService.java | 25 +++++++++++++--------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/services/java/com/android/server/PowerManagerService.java b/services/java/com/android/server/PowerManagerService.java index f3a91e7961d8..5c4aa7958760 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); + } } } -- 2.11.0