summaryrefslogtreecommitdiffstats
path: root/services/java
diff options
context:
space:
mode:
authorJoe Onorato <joeo@google.com>2010-11-06 12:56:53 -0700
committerJoe Onorato <joeo@google.com>2010-11-06 12:56:53 -0700
commitd28f753c943d72dcdf3b67566f911f46c8b6830d (patch)
treecfdd569ff52920c5dfa820471750448c36cb7f7c /services/java
parentf3e5fcc91734d8e39b396f1b70b9903a6b3dd2c0 (diff)
downloadframeworks_base-d28f753c943d72dcdf3b67566f911f46c8b6830d.zip
frameworks_base-d28f753c943d72dcdf3b67566f911f46c8b6830d.tar.gz
frameworks_base-d28f753c943d72dcdf3b67566f911f46c8b6830d.tar.bz2
Turn off the ALS when the user setting doesn't ask for automatic brightness.
Bug: 3118027 Change-Id: I24a97adce55b7b403edcbd331bdc8b0fc593b76f
Diffstat (limited to 'services/java')
-rw-r--r--services/java/com/android/server/PowerManagerService.java29
1 files changed, 15 insertions, 14 deletions
diff --git a/services/java/com/android/server/PowerManagerService.java b/services/java/com/android/server/PowerManagerService.java
index e9a2ebf..41cbbf4 100644
--- a/services/java/com/android/server/PowerManagerService.java
+++ b/services/java/com/android/server/PowerManagerService.java
@@ -1613,7 +1613,7 @@ class PowerManagerService extends IPowerManager.Stub
if (err == 0) {
mLastScreenOnTime = (on ? SystemClock.elapsedRealtime() : 0);
if (mUseSoftwareAutoBrightness) {
- enableLightSensor(on);
+ enableLightSensorLocked(on);
if (!on) {
// make sure button and key backlights are off too
mButtonLight.turnOff();
@@ -2576,16 +2576,12 @@ class PowerManagerService extends IPowerManager.Stub
}
private void setScreenBrightnessMode(int mode) {
- boolean enabled = (mode == SCREEN_BRIGHTNESS_MODE_AUTOMATIC);
- if (mUseSoftwareAutoBrightness && mAutoBrightessEnabled != enabled) {
- mAutoBrightessEnabled = enabled;
- if (isScreenOn()) {
- // force recompute of backlight values
- if (mLightSensorValue >= 0) {
- int value = (int)mLightSensorValue;
- mLightSensorValue = -1;
- lightSensorChangedLocked(value);
- }
+ synchronized (mLocks) {
+ boolean enabled = (mode == SCREEN_BRIGHTNESS_MODE_AUTOMATIC);
+ if (mUseSoftwareAutoBrightness && mAutoBrightessEnabled != enabled) {
+ mAutoBrightessEnabled = enabled;
+ // This will get us a new value
+ enableLightSensorLocked(mAutoBrightessEnabled && isScreenOn());
}
}
}
@@ -2737,7 +2733,6 @@ class PowerManagerService extends IPowerManager.Stub
// don't bother with the light sensor if auto brightness is handled in hardware
if (mUseSoftwareAutoBrightness) {
mLightSensor = mSensorManager.getDefaultSensor(Sensor.TYPE_LIGHT);
- enableLightSensor(true);
}
// wait until sensors are enabled before turning on screen.
@@ -2755,6 +2750,8 @@ class PowerManagerService extends IPowerManager.Stub
Slog.d(TAG, "system ready!");
mDoneBooting = true;
+ enableLightSensorLocked(mUseSoftwareAutoBrightness && mAutoBrightessEnabled);
+
long identity = Binder.clearCallingIdentity();
try {
mBatteryStats.noteScreenBrightness(getPreferredBrightness());
@@ -2909,9 +2906,13 @@ class PowerManagerService extends IPowerManager.Stub
}
}
- private void enableLightSensor(boolean enable) {
+ private void enableLightSensorLocked(boolean enable) {
if (mDebugLightSensor) {
- Slog.d(TAG, "enableLightSensor " + enable);
+ Slog.d(TAG, "enableLightSensorLocked enable=" + enable
+ + " mAutoBrightessEnabled=" + mAutoBrightessEnabled);
+ }
+ if (!mAutoBrightessEnabled) {
+ enable = false;
}
if (mSensorManager != null && mLightSensorEnabled != enable) {
mLightSensorEnabled = enable;