diff options
| author | Joe Onorato <joeo@google.com> | 2010-11-06 12:56:53 -0700 |
|---|---|---|
| committer | Joe Onorato <joeo@google.com> | 2010-11-06 12:56:53 -0700 |
| commit | d28f753c943d72dcdf3b67566f911f46c8b6830d (patch) | |
| tree | cfdd569ff52920c5dfa820471750448c36cb7f7c /services/java | |
| parent | f3e5fcc91734d8e39b396f1b70b9903a6b3dd2c0 (diff) | |
| download | frameworks_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.java | 29 |
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; |
