Turn off the ALS when the user setting doesn't ask for automatic brightness.

Bug: 3118027
Change-Id: I24a97adce55b7b403edcbd331bdc8b0fc593b76f
This commit is contained in:
Joe Onorato
2010-11-06 12:56:53 -07:00
parent f3e5fcc917
commit d28f753c94

View File

@@ -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;