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:
@ -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);
|
||||
}
|
||||
|
Reference in New Issue
Block a user