diff options
author | Mike Lockwood <lockwood@android.com> | 2010-04-17 22:29:20 -0400 |
---|---|---|
committer | Mike Lockwood <lockwood@android.com> | 2010-04-17 22:29:20 -0400 |
commit | 48358bd5c1a35c153c024608b4a302b90f62abfd (patch) | |
tree | c86f41d1c5c1a13e7080e510f636866b8e79c9ff /services | |
parent | 3c44db3f67c1f0bf82191ba77ca479c0e7fede34 (diff) | |
download | frameworks_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.java | 14 |
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) { |