Loading core/java/android/os/PowerManager.java +16 −0 Original line number Diff line number Diff line Loading @@ -885,5 +885,21 @@ public final class PowerManager { } } /** * Gets the default button brightness value. * @hide */ public int getDefaultButtonBrightness() { return mContext.getResources().getInteger( com.android.internal.R.integer.config_buttonBrightnessSettingDefault); } /** * Gets the default keyboard brightness value. * @hide */ public int getDefaultKeyboardBrightness() { return mContext.getResources().getInteger( com.android.internal.R.integer.config_keyboardBrightnessSettingDefault); } } core/java/android/provider/Settings.java +22 −0 Original line number Diff line number Diff line Loading @@ -1800,6 +1800,28 @@ public final class Settings { */ public static final String AUTO_BRIGHTNESS_TWILIGHT_ADJUSTMENT = "auto_brightness_twilight_adjustment"; /** * The keyboard brightness to be used while the screen is on. * Valid value range is between 0 and {@link PowerManager#getMaximumKeyboardBrightness()} * @hide */ public static final String KEYBOARD_BRIGHTNESS = "keyboard_brightness"; /** * The button brightness to be used while the screen is on or after a button press, * depending on the value of {@link BUTTON_BACKLIGHT_TIMEOUT}. * Valid value range is between 0 and {@link PowerManager#getMaximumButtonBrightness()} * @hide */ public static final String BUTTON_BRIGHTNESS = "button_brightness"; /** * The time in ms to keep the button backlight on after pressing a button. * A value of 0 will keep the buttons on for as long as the screen is on. * @hide */ public static final String BUTTON_BACKLIGHT_TIMEOUT = "button_backlight_timeout"; /** * Whether to enable the electron beam animation when turning screen off * Loading core/res/res/values/config.xml +4 −0 Original line number Diff line number Diff line Loading @@ -651,6 +651,10 @@ <integer-array name="config_autoBrightnessKeyboardBacklightValues"> </integer-array> <integer name="config_buttonBrightnessSettingDefault">255</integer> <integer name="config_keyboardBrightnessSettingDefault">0</integer> <bool name="config_deviceHasVariableButtonBrightness">false</bool> <!-- Amount of time it takes for the light sensor to warm up in milliseconds. For this time after the screen turns on, the Power Manager will not debounce light sensor readings --> Loading core/res/res/values/symbols.xml +3 −0 Original line number Diff line number Diff line Loading @@ -1617,6 +1617,9 @@ <java-symbol type="integer" name="config_screenBrightnessSettingMaximum" /> <java-symbol type="integer" name="config_screenBrightnessSettingDefault" /> <java-symbol type="integer" name="config_screenBrightnessDim" /> <java-symbol type="integer" name="config_buttonBrightnessSettingDefault" /> <java-symbol type="integer" name="config_keyboardBrightnessSettingDefault" /> <java-symbol type="bool" name="config_deviceHasVariableButtonBrightness" /> <java-symbol type="integer" name="config_shutdownBatteryTemperature" /> <java-symbol type="integer" name="config_undockedHdmiRotation" /> <java-symbol type="integer" name="config_virtualKeyQuietTimeMillis" /> Loading services/java/com/android/server/power/PowerManagerService.java +45 −9 Original line number Diff line number Diff line Loading @@ -148,7 +148,7 @@ public final class PowerManagerService extends IPowerManager.Stub // This is subtracted from the end of the screen off timeout so the // minimum screen off timeout should be longer than this. private static final int SCREEN_DIM_DURATION = 7 * 1000; private static final int BUTTON_ON_DURATION = 5 * 1000; private static final int DEFAULT_BUTTON_ON_DURATION = 5 * 1000; // The maximum screen dim time expressed as a ratio relative to the screen // off timeout. If the screen off timeout is very short then we want the Loading Loading @@ -190,6 +190,12 @@ public final class PowerManagerService extends IPowerManager.Stub private LightsService.Light mCapsLight; private LightsService.Light mFnLight; private int mButtonTimeout; private int mButtonBrightness; private int mButtonBrightnessSettingDefault; private int mKeyboardBrightness; private int mKeyboardBrightnessSettingDefault; private final Object mLock = new Object(); // A bitfield that indicates what parts of the power state have Loading Loading @@ -457,6 +463,9 @@ public final class PowerManagerService extends IPowerManager.Stub mScreenBrightnessSettingMaximum = pm.getMaximumScreenBrightnessSetting(); mScreenBrightnessSettingDefault = pm.getDefaultScreenBrightnessSetting(); mButtonBrightnessSettingDefault = pm.getDefaultButtonBrightness(); mKeyboardBrightnessSettingDefault = pm.getDefaultKeyboardBrightness(); SensorManager sensorManager = new SystemSensorManager(mContext, mHandler.getLooper()); // The notifier runs on the system server's main looper so as not to interfere Loading Loading @@ -532,6 +541,15 @@ public final class PowerManagerService extends IPowerManager.Stub resolver.registerContentObserver(Settings.System.getUriFor( Settings.System.AUTO_BRIGHTNESS_RESPONSIVENESS), false, mSettingsObserver, UserHandle.USER_ALL); resolver.registerContentObserver(Settings.System.getUriFor( Settings.System.BUTTON_BRIGHTNESS), false, mSettingsObserver, UserHandle.USER_ALL); resolver.registerContentObserver(Settings.System.getUriFor( Settings.System.KEYBOARD_BRIGHTNESS), false, mSettingsObserver, UserHandle.USER_ALL); resolver.registerContentObserver(Settings.System.getUriFor( Settings.System.BUTTON_BACKLIGHT_TIMEOUT), false, mSettingsObserver, UserHandle.USER_ALL); // Go. readConfigurationLocked(); Loading Loading @@ -612,6 +630,17 @@ public final class PowerManagerService extends IPowerManager.Stub mAutoBrightnessResponsitivityFactor = Math.min(Math.max(newAutoBrightnessResponsitivityFactor, 0.2f), 3.0f); mButtonTimeout = Settings.System.getIntForUser(resolver, Settings.System.BUTTON_BACKLIGHT_TIMEOUT, DEFAULT_BUTTON_ON_DURATION, UserHandle.USER_CURRENT); mButtonBrightness = Settings.System.getIntForUser(resolver, Settings.System.BUTTON_BRIGHTNESS, mButtonBrightnessSettingDefault, UserHandle.USER_CURRENT); mKeyboardBrightness = Settings.System.getIntForUser(resolver, Settings.System.KEYBOARD_BRIGHTNESS, mKeyboardBrightnessSettingDefault, UserHandle.USER_CURRENT); mDirty |= DIRTY_SETTINGS; } Loading Loading @@ -1411,22 +1440,29 @@ public final class PowerManagerService extends IPowerManager.Stub nextTimeout = mLastUserActivityTime + screenOffTimeout - screenDimDuration; if (now < nextTimeout) { int brightness = mButtonBrightnessOverrideFromWindowManager >= 0 ? mButtonBrightnessOverrideFromWindowManager : mDisplayPowerRequest.screenBrightness; mKeyboardLight.setBrightness(mKeyboardVisible ? brightness : 0); if (now > mLastUserActivityTime + BUTTON_ON_DURATION) { int buttonBrightness, keyboardBrightness; if (mButtonBrightnessOverrideFromWindowManager >= 0) { buttonBrightness = mButtonBrightnessOverrideFromWindowManager; keyboardBrightness = mButtonBrightnessOverrideFromWindowManager; } else { buttonBrightness = mButtonBrightness; keyboardBrightness = mKeyboardBrightness; } mKeyboardLight.setBrightness(mKeyboardVisible ? keyboardBrightness : 0); if (mButtonTimeout != 0 && now > mLastUserActivityTime + mButtonTimeout) { mButtonsLight.setBrightness(0); } else { mButtonsLight.setBrightness(brightness); if (brightness != 0) { nextTimeout = now + BUTTON_ON_DURATION; mButtonsLight.setBrightness(buttonBrightness); if (buttonBrightness != 0 && mButtonTimeout != 0) { nextTimeout = now + mButtonTimeout; } } mUserActivitySummary |= USER_ACTIVITY_SCREEN_BRIGHT; } else { nextTimeout = mLastUserActivityTime + screenOffTimeout; if (now < nextTimeout) { mButtonsLight.setBrightness(0); mKeyboardLight.setBrightness(0); mUserActivitySummary |= USER_ACTIVITY_SCREEN_DIM; } Loading Loading
core/java/android/os/PowerManager.java +16 −0 Original line number Diff line number Diff line Loading @@ -885,5 +885,21 @@ public final class PowerManager { } } /** * Gets the default button brightness value. * @hide */ public int getDefaultButtonBrightness() { return mContext.getResources().getInteger( com.android.internal.R.integer.config_buttonBrightnessSettingDefault); } /** * Gets the default keyboard brightness value. * @hide */ public int getDefaultKeyboardBrightness() { return mContext.getResources().getInteger( com.android.internal.R.integer.config_keyboardBrightnessSettingDefault); } }
core/java/android/provider/Settings.java +22 −0 Original line number Diff line number Diff line Loading @@ -1800,6 +1800,28 @@ public final class Settings { */ public static final String AUTO_BRIGHTNESS_TWILIGHT_ADJUSTMENT = "auto_brightness_twilight_adjustment"; /** * The keyboard brightness to be used while the screen is on. * Valid value range is between 0 and {@link PowerManager#getMaximumKeyboardBrightness()} * @hide */ public static final String KEYBOARD_BRIGHTNESS = "keyboard_brightness"; /** * The button brightness to be used while the screen is on or after a button press, * depending on the value of {@link BUTTON_BACKLIGHT_TIMEOUT}. * Valid value range is between 0 and {@link PowerManager#getMaximumButtonBrightness()} * @hide */ public static final String BUTTON_BRIGHTNESS = "button_brightness"; /** * The time in ms to keep the button backlight on after pressing a button. * A value of 0 will keep the buttons on for as long as the screen is on. * @hide */ public static final String BUTTON_BACKLIGHT_TIMEOUT = "button_backlight_timeout"; /** * Whether to enable the electron beam animation when turning screen off * Loading
core/res/res/values/config.xml +4 −0 Original line number Diff line number Diff line Loading @@ -651,6 +651,10 @@ <integer-array name="config_autoBrightnessKeyboardBacklightValues"> </integer-array> <integer name="config_buttonBrightnessSettingDefault">255</integer> <integer name="config_keyboardBrightnessSettingDefault">0</integer> <bool name="config_deviceHasVariableButtonBrightness">false</bool> <!-- Amount of time it takes for the light sensor to warm up in milliseconds. For this time after the screen turns on, the Power Manager will not debounce light sensor readings --> Loading
core/res/res/values/symbols.xml +3 −0 Original line number Diff line number Diff line Loading @@ -1617,6 +1617,9 @@ <java-symbol type="integer" name="config_screenBrightnessSettingMaximum" /> <java-symbol type="integer" name="config_screenBrightnessSettingDefault" /> <java-symbol type="integer" name="config_screenBrightnessDim" /> <java-symbol type="integer" name="config_buttonBrightnessSettingDefault" /> <java-symbol type="integer" name="config_keyboardBrightnessSettingDefault" /> <java-symbol type="bool" name="config_deviceHasVariableButtonBrightness" /> <java-symbol type="integer" name="config_shutdownBatteryTemperature" /> <java-symbol type="integer" name="config_undockedHdmiRotation" /> <java-symbol type="integer" name="config_virtualKeyQuietTimeMillis" /> Loading
services/java/com/android/server/power/PowerManagerService.java +45 −9 Original line number Diff line number Diff line Loading @@ -148,7 +148,7 @@ public final class PowerManagerService extends IPowerManager.Stub // This is subtracted from the end of the screen off timeout so the // minimum screen off timeout should be longer than this. private static final int SCREEN_DIM_DURATION = 7 * 1000; private static final int BUTTON_ON_DURATION = 5 * 1000; private static final int DEFAULT_BUTTON_ON_DURATION = 5 * 1000; // The maximum screen dim time expressed as a ratio relative to the screen // off timeout. If the screen off timeout is very short then we want the Loading Loading @@ -190,6 +190,12 @@ public final class PowerManagerService extends IPowerManager.Stub private LightsService.Light mCapsLight; private LightsService.Light mFnLight; private int mButtonTimeout; private int mButtonBrightness; private int mButtonBrightnessSettingDefault; private int mKeyboardBrightness; private int mKeyboardBrightnessSettingDefault; private final Object mLock = new Object(); // A bitfield that indicates what parts of the power state have Loading Loading @@ -457,6 +463,9 @@ public final class PowerManagerService extends IPowerManager.Stub mScreenBrightnessSettingMaximum = pm.getMaximumScreenBrightnessSetting(); mScreenBrightnessSettingDefault = pm.getDefaultScreenBrightnessSetting(); mButtonBrightnessSettingDefault = pm.getDefaultButtonBrightness(); mKeyboardBrightnessSettingDefault = pm.getDefaultKeyboardBrightness(); SensorManager sensorManager = new SystemSensorManager(mContext, mHandler.getLooper()); // The notifier runs on the system server's main looper so as not to interfere Loading Loading @@ -532,6 +541,15 @@ public final class PowerManagerService extends IPowerManager.Stub resolver.registerContentObserver(Settings.System.getUriFor( Settings.System.AUTO_BRIGHTNESS_RESPONSIVENESS), false, mSettingsObserver, UserHandle.USER_ALL); resolver.registerContentObserver(Settings.System.getUriFor( Settings.System.BUTTON_BRIGHTNESS), false, mSettingsObserver, UserHandle.USER_ALL); resolver.registerContentObserver(Settings.System.getUriFor( Settings.System.KEYBOARD_BRIGHTNESS), false, mSettingsObserver, UserHandle.USER_ALL); resolver.registerContentObserver(Settings.System.getUriFor( Settings.System.BUTTON_BACKLIGHT_TIMEOUT), false, mSettingsObserver, UserHandle.USER_ALL); // Go. readConfigurationLocked(); Loading Loading @@ -612,6 +630,17 @@ public final class PowerManagerService extends IPowerManager.Stub mAutoBrightnessResponsitivityFactor = Math.min(Math.max(newAutoBrightnessResponsitivityFactor, 0.2f), 3.0f); mButtonTimeout = Settings.System.getIntForUser(resolver, Settings.System.BUTTON_BACKLIGHT_TIMEOUT, DEFAULT_BUTTON_ON_DURATION, UserHandle.USER_CURRENT); mButtonBrightness = Settings.System.getIntForUser(resolver, Settings.System.BUTTON_BRIGHTNESS, mButtonBrightnessSettingDefault, UserHandle.USER_CURRENT); mKeyboardBrightness = Settings.System.getIntForUser(resolver, Settings.System.KEYBOARD_BRIGHTNESS, mKeyboardBrightnessSettingDefault, UserHandle.USER_CURRENT); mDirty |= DIRTY_SETTINGS; } Loading Loading @@ -1411,22 +1440,29 @@ public final class PowerManagerService extends IPowerManager.Stub nextTimeout = mLastUserActivityTime + screenOffTimeout - screenDimDuration; if (now < nextTimeout) { int brightness = mButtonBrightnessOverrideFromWindowManager >= 0 ? mButtonBrightnessOverrideFromWindowManager : mDisplayPowerRequest.screenBrightness; mKeyboardLight.setBrightness(mKeyboardVisible ? brightness : 0); if (now > mLastUserActivityTime + BUTTON_ON_DURATION) { int buttonBrightness, keyboardBrightness; if (mButtonBrightnessOverrideFromWindowManager >= 0) { buttonBrightness = mButtonBrightnessOverrideFromWindowManager; keyboardBrightness = mButtonBrightnessOverrideFromWindowManager; } else { buttonBrightness = mButtonBrightness; keyboardBrightness = mKeyboardBrightness; } mKeyboardLight.setBrightness(mKeyboardVisible ? keyboardBrightness : 0); if (mButtonTimeout != 0 && now > mLastUserActivityTime + mButtonTimeout) { mButtonsLight.setBrightness(0); } else { mButtonsLight.setBrightness(brightness); if (brightness != 0) { nextTimeout = now + BUTTON_ON_DURATION; mButtonsLight.setBrightness(buttonBrightness); if (buttonBrightness != 0 && mButtonTimeout != 0) { nextTimeout = now + mButtonTimeout; } } mUserActivitySummary |= USER_ACTIVITY_SCREEN_BRIGHT; } else { nextTimeout = mLastUserActivityTime + screenOffTimeout; if (now < nextTimeout) { mButtonsLight.setBrightness(0); mKeyboardLight.setBrightness(0); mUserActivitySummary |= USER_ACTIVITY_SCREEN_DIM; } Loading