Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 148f666b authored by Mike Lockwood's avatar Mike Lockwood Committed by Android Git Automerger
Browse files

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

Merge commit 'aa66ea88' into eclair-mr2

* commit 'aa66ea88':
  Use separate flags for enabling hardware and software auto-brightness.
parents 8385baea aa66ea88
Loading
Loading
Loading
Loading
+25 −18
Original line number Diff line number Diff line
@@ -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);
        }