am aa66ea88: Use separate flags for enabling hardware and software auto-brightness.

Merge commit 'aa66ea880f58c9caa49e31c166bb3bd6bbf14e21' into eclair-mr2

* commit 'aa66ea880f58c9caa49e31c166bb3bd6bbf14e21':
  Use separate flags for enabling hardware and software auto-brightness.
This commit is contained in:
Mike Lockwood
2009-11-01 05:31:36 -08:00
committed by Android Git Automerger

View File

@ -211,7 +211,8 @@ class PowerManagerService extends IPowerManager.Stub
private long mScreenOnStartTime;
private boolean mPreventScreenOn;
private int mScreenBrightnessOverride = -1;
private boolean mHasHardwareAutoBrightness;
private boolean mUseSoftwareAutoBrightness;
private boolean mUseHardwareAutoBrightness;
private boolean mAutoBrightessEnabled;
private int[] mAutoBrightnessLevels;
private int[] mLcdBacklightValues;
@ -438,9 +439,16 @@ class PowerManagerService extends IPowerManager.Stub
mScreenOffIntent.addFlags(Intent.FLAG_RECEIVER_REGISTERED_ONLY);
Resources resources = mContext.getResources();
mHasHardwareAutoBrightness = resources.getBoolean(
// read settings for auto-brightness
mUseSoftwareAutoBrightness = resources.getBoolean(
com.android.internal.R.bool.config_automatic_brightness_available);
mUseHardwareAutoBrightness = resources.getBoolean(
com.android.internal.R.bool.config_hardware_automatic_brightness_available);
if (!mHasHardwareAutoBrightness) {
if (mUseHardwareAutoBrightness) {
mUseSoftwareAutoBrightness = false;
}
if (mUseSoftwareAutoBrightness) {
mAutoBrightnessLevels = resources.getIntArray(
com.android.internal.R.array.config_autoBrightnessLevels);
mLcdBacklightValues = resources.getIntArray(
@ -479,7 +487,7 @@ class PowerManagerService extends IPowerManager.Stub
// And explicitly do the initial update of our cached settings
updateGservicesValues();
if (mAutoBrightessEnabled && !mHasHardwareAutoBrightness) {
if (mUseSoftwareAutoBrightness && mAutoBrightessEnabled) {
// turn the screen on
setPowerState(SCREEN_BRIGHT);
} else {
@ -581,7 +589,7 @@ class PowerManagerService extends IPowerManager.Stub
switch (wl.flags & LOCK_MASK)
{
case PowerManager.FULL_WAKE_LOCK:
if (mAutoBrightessEnabled && !mHasHardwareAutoBrightness) {
if (mAutoBrightessEnabled && mUseSoftwareAutoBrightness) {
wl.minState = SCREEN_BRIGHT;
} else {
wl.minState = (mKeyboardVisible ? ALL_BRIGHT : SCREEN_BUTTON_BRIGHT);
@ -887,7 +895,8 @@ class PowerManagerService extends IPowerManager.Stub
pw.println(" mLightSensorEnabled=" + mLightSensorEnabled);
pw.println(" mLightSensorValue=" + mLightSensorValue);
pw.println(" mLightSensorPendingValue=" + mLightSensorPendingValue);
pw.println(" mHasHardwareAutoBrightness=" + mHasHardwareAutoBrightness);
pw.println(" mUseHardwareAutoBrightness=" + mUseHardwareAutoBrightness);
pw.println(" mUseSoftwareAutoBrightness=" + mUseSoftwareAutoBrightness);
pw.println(" mAutoBrightessEnabled=" + mAutoBrightessEnabled);
mScreenBrightness.dump(pw, " mScreenBrightness: ");
mKeyboardBrightness.dump(pw, " mKeyboardBrightness: ");
@ -1290,7 +1299,7 @@ class PowerManagerService extends IPowerManager.Stub
private int setScreenStateLocked(boolean on) {
int err = Power.setScreenState(on);
if (err == 0 && !mHasHardwareAutoBrightness) {
if (err == 0 && mUseSoftwareAutoBrightness) {
enableLightSensor(on && mAutoBrightessEnabled);
if (!on) {
// make sure button and key backlights are off too
@ -1337,7 +1346,7 @@ class PowerManagerService extends IPowerManager.Stub
return;
}
if (!mDoneBooting && !(mAutoBrightessEnabled && !mHasHardwareAutoBrightness)) {
if (!mDoneBooting && !(mAutoBrightessEnabled && mUseSoftwareAutoBrightness)) {
newState |= ALL_BRIGHT;
}
@ -1758,7 +1767,7 @@ class PowerManagerService extends IPowerManager.Stub
try {
if (mScreenBrightnessOverride >= 0) {
return mScreenBrightnessOverride;
} else if (mLightSensorBrightness >= 0 && !mHasHardwareAutoBrightness) {
} else if (mLightSensorBrightness >= 0 && mUseSoftwareAutoBrightness) {
return mLightSensorBrightness;
}
final int brightness = Settings.System.getInt(mContext.getContentResolver(),
@ -1850,7 +1859,7 @@ class PowerManagerService extends IPowerManager.Stub
// Only turn on button backlights if a button was pressed
// and auto brightness is disabled
if (eventType == BUTTON_EVENT &&
!(mAutoBrightessEnabled && !mHasHardwareAutoBrightness)) {
!(mAutoBrightessEnabled && mUseSoftwareAutoBrightness)) {
mUserState = (mKeyboardVisible ? ALL_BRIGHT : SCREEN_BUTTON_BRIGHT);
} else {
// don't clear button/keyboard backlights when the screen is touched.
@ -1908,8 +1917,6 @@ class PowerManagerService extends IPowerManager.Stub
Log.d(TAG, "lightSensorChangedLocked " + value);
}
if (mHasHardwareAutoBrightness) return;
if (mLightSensorValue != value) {
mLightSensorValue = value;
if ((mPowerState & BATTERY_LOW_BIT) == 0) {
@ -2057,17 +2064,17 @@ class PowerManagerService extends IPowerManager.Stub
boolean enabled = (mode == SCREEN_BRIGHTNESS_MODE_AUTOMATIC);
if (mAutoBrightessEnabled != enabled) {
mAutoBrightessEnabled = enabled;
// reset computed brightness
mLightSensorValue = -1;
mLightSensorBrightness = -1;
if (mHasHardwareAutoBrightness) {
if (mUseHardwareAutoBrightness) {
// When setting auto-brightness, must reset the brightness afterwards
mHardware.setAutoBrightness_UNCHECKED(enabled);
if (screenIsOn()) {
setBacklightBrightness((int)mScreenBrightness.curValue);
}
} else {
} else if (mUseSoftwareAutoBrightness) {
// reset computed brightness
mLightSensorValue = -1;
mLightSensorBrightness = -1;
enableLightSensor(screenIsOn() && enabled);
}
}
@ -2222,7 +2229,7 @@ class PowerManagerService extends IPowerManager.Stub
mSensorManager = new SensorManager(mHandlerThread.getLooper());
mProximitySensor = mSensorManager.getDefaultSensor(Sensor.TYPE_PROXIMITY);
// don't bother with the light sensor if auto brightness is handled in hardware
if (!mHasHardwareAutoBrightness) {
if (mUseSoftwareAutoBrightness) {
mLightSensor = mSensorManager.getDefaultSensor(Sensor.TYPE_LIGHT);
enableLightSensor(mAutoBrightessEnabled);
}