summaryrefslogtreecommitdiffstats
path: root/services
diff options
context:
space:
mode:
authorMike Lockwood <lockwood@android.com>2010-04-17 22:29:20 -0400
committerMike Lockwood <lockwood@android.com>2010-04-17 22:29:20 -0400
commit48358bd5c1a35c153c024608b4a302b90f62abfd (patch)
treec86f41d1c5c1a13e7080e510f636866b8e79c9ff /services
parent3c44db3f67c1f0bf82191ba77ca479c0e7fede34 (diff)
downloadframeworks_base-48358bd5c1a35c153c024608b4a302b90f62abfd.zip
frameworks_base-48358bd5c1a35c153c024608b4a302b90f62abfd.tar.gz
frameworks_base-48358bd5c1a35c153c024608b4a302b90f62abfd.tar.bz2
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>
Diffstat (limited to 'services')
-rw-r--r--services/java/com/android/server/PowerManagerService.java14
1 files changed, 11 insertions, 3 deletions
diff --git a/services/java/com/android/server/PowerManagerService.java b/services/java/com/android/server/PowerManagerService.java
index c9dd553..b9021b0 100644
--- a/services/java/com/android/server/PowerManagerService.java
+++ b/services/java/com/android/server/PowerManagerService.java
@@ -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) {