Loading core/res/res/values/config.xml +4 −0 Original line number Diff line number Diff line Loading @@ -491,6 +491,10 @@ <integer-array name="config_autoBrightnessLcdBacklightValues"> </integer-array> <!-- Flag indicating whether we should enable automatic brightness for the button and keyboard backlights. --> <bool name="config_autoBrightnessButtonKeyboard">true</bool> <!-- Array of output values for button backlight corresponding to the LUX values in the config_autoBrightnessLevels array. This array should have size one greater than the size of the config_autoBrightnessLevels array. Loading services/java/com/android/server/PowerManagerService.java +20 −8 Original line number Diff line number Diff line Loading @@ -256,6 +256,13 @@ public class PowerManagerService extends IPowerManager.Stub private long mWarningSpewThrottleTime; private int mAnimationSetting = ANIM_SETTING_OFF; // When using software auto-brightness, determines whether (true) button // and keyboard backlights should also be under automatic brightness // control (i.e., for dimmable backlights), or (false) if they should use // hard-coded brightness settings that timeout-to-off in subsequent screen // power states. private boolean mAutoBrightnessButtonKeyboard; // Must match with the ISurfaceComposer constants in C++. private static final int ANIM_SETTING_ON = 0x01; private static final int ANIM_SETTING_OFF = 0x10; Loading Loading @@ -637,6 +644,8 @@ public class PowerManagerService extends IPowerManager.Stub // read settings for auto-brightness mUseSoftwareAutoBrightness = resources.getBoolean( com.android.internal.R.bool.config_automatic_brightness_available); mAutoBrightnessButtonKeyboard = mUseSoftwareAutoBrightness && resources.getBoolean( com.android.internal.R.bool.config_autoBrightnessButtonKeyboard); if (mUseSoftwareAutoBrightness) { mAutoBrightnessLevels = resources.getIntArray( com.android.internal.R.array.config_autoBrightnessLevels); Loading Loading @@ -840,7 +849,7 @@ public class PowerManagerService extends IPowerManager.Stub switch (wl.flags & LOCK_MASK) { case PowerManager.FULL_WAKE_LOCK: if (mUseSoftwareAutoBrightness) { if (mAutoBrightnessButtonKeyboard) { wl.minState = SCREEN_BRIGHT; } else { wl.minState = (mKeyboardVisible ? ALL_BRIGHT : SCREEN_BUTTON_BRIGHT); Loading Loading @@ -1207,6 +1216,7 @@ public class PowerManagerService extends IPowerManager.Stub + " mLightSensorButtonBrightness=" + mLightSensorButtonBrightness + " mLightSensorKeyboardBrightness=" + mLightSensorKeyboardBrightness); pw.println(" mUseSoftwareAutoBrightness=" + mUseSoftwareAutoBrightness); pw.println(" mAutoBrightnessButtonKeyboard=" + mAutoBrightnessButtonKeyboard); pw.println(" mAutoBrightessEnabled=" + mAutoBrightessEnabled); mScreenBrightness.dump(pw, " mScreenBrightness: "); Loading Loading @@ -1788,7 +1798,7 @@ public class PowerManagerService extends IPowerManager.Stub return; } if (!mBootCompleted && !mUseSoftwareAutoBrightness) { if (!mBootCompleted && !mAutoBrightnessButtonKeyboard) { newState |= ALL_BRIGHT; } Loading Loading @@ -2301,7 +2311,7 @@ public class PowerManagerService extends IPowerManager.Stub } if (mButtonBrightnessOverride >= 0) { brightness = mButtonBrightnessOverride; } else if (mLightSensorButtonBrightness >= 0 && mUseSoftwareAutoBrightness) { } else if (mLightSensorButtonBrightness >= 0 && mAutoBrightnessButtonKeyboard) { brightness = mLightSensorButtonBrightness; } if (brightness > 0) { Loading @@ -2323,7 +2333,7 @@ public class PowerManagerService extends IPowerManager.Stub brightness = 0; } else if (mButtonBrightnessOverride >= 0) { brightness = mButtonBrightnessOverride; } else if (mLightSensorKeyboardBrightness >= 0 && mUseSoftwareAutoBrightness) { } else if (mLightSensorKeyboardBrightness >= 0 && mAutoBrightnessButtonKeyboard) { brightness = mLightSensorKeyboardBrightness; } if (brightness > 0) { Loading Loading @@ -2446,9 +2456,11 @@ public class PowerManagerService extends IPowerManager.Stub if (mLastEventTime <= time || force) { mLastEventTime = time; if ((mUserActivityAllowed && !mProximitySensorActive) || force) { // Only turn on button backlights if a button was pressed // and auto brightness is disabled if (eventType == BUTTON_EVENT && !mUseSoftwareAutoBrightness) { if (!mAutoBrightnessButtonKeyboard) { // Turn on button (and keyboard) backlights on any event, so that they // don't suddenly disappear when the lock screen is unlocked (OTHER_EVENT), // and so capacitive buttons can be found on devices where they lack // identifying surface features. mUserState = (mKeyboardVisible ? ALL_BRIGHT : SCREEN_BUTTON_BRIGHT); } else { // don't clear button/keyboard backlights when the screen is touched. Loading Loading @@ -3208,7 +3220,7 @@ public class PowerManagerService extends IPowerManager.Stub // wait until sensors are enabled before turning on screen. // some devices will not activate the light sensor properly on boot // unless we do this. if (mUseSoftwareAutoBrightness) { if (mAutoBrightnessButtonKeyboard) { // turn the screen on setPowerState(SCREEN_BRIGHT); } else { Loading Loading
core/res/res/values/config.xml +4 −0 Original line number Diff line number Diff line Loading @@ -491,6 +491,10 @@ <integer-array name="config_autoBrightnessLcdBacklightValues"> </integer-array> <!-- Flag indicating whether we should enable automatic brightness for the button and keyboard backlights. --> <bool name="config_autoBrightnessButtonKeyboard">true</bool> <!-- Array of output values for button backlight corresponding to the LUX values in the config_autoBrightnessLevels array. This array should have size one greater than the size of the config_autoBrightnessLevels array. Loading
services/java/com/android/server/PowerManagerService.java +20 −8 Original line number Diff line number Diff line Loading @@ -256,6 +256,13 @@ public class PowerManagerService extends IPowerManager.Stub private long mWarningSpewThrottleTime; private int mAnimationSetting = ANIM_SETTING_OFF; // When using software auto-brightness, determines whether (true) button // and keyboard backlights should also be under automatic brightness // control (i.e., for dimmable backlights), or (false) if they should use // hard-coded brightness settings that timeout-to-off in subsequent screen // power states. private boolean mAutoBrightnessButtonKeyboard; // Must match with the ISurfaceComposer constants in C++. private static final int ANIM_SETTING_ON = 0x01; private static final int ANIM_SETTING_OFF = 0x10; Loading Loading @@ -637,6 +644,8 @@ public class PowerManagerService extends IPowerManager.Stub // read settings for auto-brightness mUseSoftwareAutoBrightness = resources.getBoolean( com.android.internal.R.bool.config_automatic_brightness_available); mAutoBrightnessButtonKeyboard = mUseSoftwareAutoBrightness && resources.getBoolean( com.android.internal.R.bool.config_autoBrightnessButtonKeyboard); if (mUseSoftwareAutoBrightness) { mAutoBrightnessLevels = resources.getIntArray( com.android.internal.R.array.config_autoBrightnessLevels); Loading Loading @@ -840,7 +849,7 @@ public class PowerManagerService extends IPowerManager.Stub switch (wl.flags & LOCK_MASK) { case PowerManager.FULL_WAKE_LOCK: if (mUseSoftwareAutoBrightness) { if (mAutoBrightnessButtonKeyboard) { wl.minState = SCREEN_BRIGHT; } else { wl.minState = (mKeyboardVisible ? ALL_BRIGHT : SCREEN_BUTTON_BRIGHT); Loading Loading @@ -1207,6 +1216,7 @@ public class PowerManagerService extends IPowerManager.Stub + " mLightSensorButtonBrightness=" + mLightSensorButtonBrightness + " mLightSensorKeyboardBrightness=" + mLightSensorKeyboardBrightness); pw.println(" mUseSoftwareAutoBrightness=" + mUseSoftwareAutoBrightness); pw.println(" mAutoBrightnessButtonKeyboard=" + mAutoBrightnessButtonKeyboard); pw.println(" mAutoBrightessEnabled=" + mAutoBrightessEnabled); mScreenBrightness.dump(pw, " mScreenBrightness: "); Loading Loading @@ -1788,7 +1798,7 @@ public class PowerManagerService extends IPowerManager.Stub return; } if (!mBootCompleted && !mUseSoftwareAutoBrightness) { if (!mBootCompleted && !mAutoBrightnessButtonKeyboard) { newState |= ALL_BRIGHT; } Loading Loading @@ -2301,7 +2311,7 @@ public class PowerManagerService extends IPowerManager.Stub } if (mButtonBrightnessOverride >= 0) { brightness = mButtonBrightnessOverride; } else if (mLightSensorButtonBrightness >= 0 && mUseSoftwareAutoBrightness) { } else if (mLightSensorButtonBrightness >= 0 && mAutoBrightnessButtonKeyboard) { brightness = mLightSensorButtonBrightness; } if (brightness > 0) { Loading @@ -2323,7 +2333,7 @@ public class PowerManagerService extends IPowerManager.Stub brightness = 0; } else if (mButtonBrightnessOverride >= 0) { brightness = mButtonBrightnessOverride; } else if (mLightSensorKeyboardBrightness >= 0 && mUseSoftwareAutoBrightness) { } else if (mLightSensorKeyboardBrightness >= 0 && mAutoBrightnessButtonKeyboard) { brightness = mLightSensorKeyboardBrightness; } if (brightness > 0) { Loading Loading @@ -2446,9 +2456,11 @@ public class PowerManagerService extends IPowerManager.Stub if (mLastEventTime <= time || force) { mLastEventTime = time; if ((mUserActivityAllowed && !mProximitySensorActive) || force) { // Only turn on button backlights if a button was pressed // and auto brightness is disabled if (eventType == BUTTON_EVENT && !mUseSoftwareAutoBrightness) { if (!mAutoBrightnessButtonKeyboard) { // Turn on button (and keyboard) backlights on any event, so that they // don't suddenly disappear when the lock screen is unlocked (OTHER_EVENT), // and so capacitive buttons can be found on devices where they lack // identifying surface features. mUserState = (mKeyboardVisible ? ALL_BRIGHT : SCREEN_BUTTON_BRIGHT); } else { // don't clear button/keyboard backlights when the screen is touched. Loading Loading @@ -3208,7 +3220,7 @@ public class PowerManagerService extends IPowerManager.Stub // wait until sensors are enabled before turning on screen. // some devices will not activate the light sensor properly on boot // unless we do this. if (mUseSoftwareAutoBrightness) { if (mAutoBrightnessButtonKeyboard) { // turn the screen on setPowerState(SCREEN_BRIGHT); } else { Loading