Loading core/java/android/os/IPowerManager.aidl +1 −0 Original line number Diff line number Diff line Loading @@ -171,5 +171,6 @@ interface IPowerManager // Lineage custom API void rebootCustom(boolean confirm, String reason, boolean wait); void setKeyboardVisibility(boolean visible); void wakeUpWithProximityCheck(long time, int reason, String details, String opPackageName); } core/java/android/os/PowerManager.java +20 −1 Original line number Diff line number Diff line Loading @@ -556,7 +556,8 @@ public final class PowerManager { BRIGHTNESS_CONSTRAINT_TYPE_DEFAULT, BRIGHTNESS_CONSTRAINT_TYPE_DIM, BRIGHTNESS_CONSTRAINT_TYPE_DOZE, BRIGHTNESS_CONSTRAINT_TYPE_DEFAULT_BUTTON BRIGHTNESS_CONSTRAINT_TYPE_DEFAULT_BUTTON, BRIGHTNESS_CONSTRAINT_TYPE_DEFAULT_KEYBOARD }) @Retention(RetentionPolicy.SOURCE) public @interface BrightnessConstraint{} Loading Loading @@ -596,6 +597,12 @@ public final class PowerManager { */ public static final int BRIGHTNESS_CONSTRAINT_TYPE_DEFAULT_BUTTON = 8; /** * Brightness constraint type: minimum allowed value. * @hide */ public static final int BRIGHTNESS_CONSTRAINT_TYPE_DEFAULT_KEYBOARD = 9; /** * @hide */ Loading Loading @@ -2850,6 +2857,18 @@ public final class PowerManager { } } /** * @hide */ public void setKeyboardVisibility(boolean visible) { try { if (mService != null) { mService.setKeyboardVisibility(visible); } } catch (RemoteException e) { } } /** * If true, the doze component is not started until after the screen has been * turned off and the screen off animation has been performed. Loading services/core/java/com/android/server/display/DisplayPowerController2.java +5 −1 Original line number Diff line number Diff line Loading @@ -1303,13 +1303,17 @@ final class DisplayPowerController2 implements AutomaticBrightnessController.Cal final boolean userSetBrightnessChanged = mDisplayBrightnessController .updateUserSetScreenBrightness(); // Disable button lights when screen off or dozing // Disable button and keyboard lights when screen off or dozing if (state == Display.STATE_OFF || state == Display.STATE_DOZE || state == Display.STATE_DOZE_SUSPEND) { LogicalLight buttonsLight = mLights.getLight(LightsManager.LIGHT_ID_BUTTONS); if (buttonsLight != null) { buttonsLight.setBrightness(PowerManager.BRIGHTNESS_OFF_FLOAT); } LogicalLight keyboardLight = mLights.getLight(LightsManager.LIGHT_ID_KEYBOARD); if (keyboardLight != null) { keyboardLight.setBrightness(PowerManager.BRIGHTNESS_OFF_FLOAT); } } DisplayBrightnessState displayBrightnessState = mDisplayBrightnessController Loading services/core/java/com/android/server/policy/PhoneWindowManager.java +6 −0 Original line number Diff line number Diff line Loading @@ -3009,6 +3009,10 @@ public class PhoneWindowManager implements WindowManagerPolicy { } } private boolean isBuiltInKeyboardVisible() { return mHaveBuiltInKeyboard && !isHidden(mLidKeyboardAccessibility); } /** {@inheritDoc} */ @Override public void adjustConfigurationLw(Configuration config, int keyboardPresence, Loading Loading @@ -5959,6 +5963,8 @@ public class PhoneWindowManager implements WindowManagerPolicy { } private void applyLidSwitchState() { mPowerManager.setKeyboardVisibility(isBuiltInKeyboardVisible()); final int lidState = mDefaultDisplayPolicy.getLidState(); if (lidState == LID_CLOSED) { int lidBehavior = getLidBehavior(); Loading services/core/java/com/android/server/power/PowerManagerService.java +56 −1 Original line number Diff line number Diff line Loading @@ -354,9 +354,12 @@ public final class PowerManagerService extends SystemService private DreamManagerInternal mDreamManager; private LogicalLight mAttentionLight; private LogicalLight mButtonsLight; private LogicalLight mKeyboardLight; private int mButtonTimeout; private float mButtonBrightness; private boolean mKeyboardVisible; private float mKeyboardBrightness; private boolean mButtonLightOnKeypressOnly; Loading Loading @@ -621,8 +624,9 @@ public final class PowerManagerService extends SystemService // (when {@link #mProximityPositive} is set to false). private boolean mInterceptedPowerKeyForProximity; // Button brightness // Button and keyboard brightness public final float mButtonBrightnessDefault; public final float mKeyboardBrightnessDefault; // Screen brightness setting limits. public final float mScreenBrightnessMinimum; Loading Loading @@ -1219,6 +1223,9 @@ public final class PowerManagerService extends SystemService mButtonBrightnessDefault = mContext.getResources().getFloat( org.lineageos.platform.internal.R.dimen .config_buttonBrightnessSettingDefaultFloat); mKeyboardBrightnessDefault = mContext.getResources().getFloat( org.lineageos.platform.internal.R.dimen .config_keyboardBrightnessSettingDefaultFloat); // Save brightness values: // Get float values from config. Loading Loading @@ -1403,6 +1410,7 @@ public final class PowerManagerService extends SystemService mLightsManager = getLocalService(LightsManager.class); mAttentionLight = mLightsManager.getLight(LightsManager.LIGHT_ID_ATTENTION); mButtonsLight = mLightsManager.getLight(LightsManager.LIGHT_ID_BUTTONS); mKeyboardLight = mLightsManager.getLight(LightsManager.LIGHT_ID_KEYBOARD); updateDeviceConfigLocked(); mDeviceConfigProvider.addOnPropertiesChangedListener(BackgroundThread.getExecutor(), properties -> { Loading Loading @@ -1504,6 +1512,9 @@ public final class PowerManagerService extends SystemService resolver.registerContentObserver(LineageSettings.System.getUriFor( LineageSettings.System.BUTTON_BACKLIGHT_ONLY_WHEN_PRESSED), false, mSettingsObserver, UserHandle.USER_ALL); resolver.registerContentObserver(LineageSettings.Secure.getUriFor( LineageSettings.Secure.KEYBOARD_BRIGHTNESS), false, mSettingsObserver, UserHandle.USER_ALL); // Register for broadcasts from other components of the system. IntentFilter filter = new IntentFilter(); Loading Loading @@ -1648,6 +1659,9 @@ public final class PowerManagerService extends SystemService mButtonLightOnKeypressOnly = LineageSettings.System.getIntForUser(resolver, LineageSettings.System.BUTTON_BACKLIGHT_ONLY_WHEN_PRESSED, 0, UserHandle.USER_CURRENT) == 1; mKeyboardBrightness = LineageSettings.Secure.getFloatForUser(resolver, LineageSettings.Secure.KEYBOARD_BRIGHTNESS, mKeyboardBrightnessDefault, UserHandle.USER_CURRENT); mDirty |= DIRTY_SETTINGS; } Loading Loading @@ -3057,6 +3071,21 @@ public final class PowerManagerService extends SystemService } } } if (mKeyboardLight != null) { float keyboardBrightness = BRIGHTNESS_OFF_FLOAT; if (isValidBrightness(mButtonBrightnessOverrideFromWindowManager)) { if (mButtonBrightnessOverrideFromWindowManager > PowerManager.BRIGHTNESS_MIN) { keyboardBrightness = mButtonBrightnessOverrideFromWindowManager; } } else if (isValidKeyboardBrightness(mKeyboardBrightness)) { keyboardBrightness = mKeyboardBrightness; } mKeyboardLight.setBrightness(mKeyboardVisible ? keyboardBrightness : BRIGHTNESS_OFF_FLOAT); } } } else { groupNextTimeout = lastUserActivityTime + screenOffTimeout; Loading @@ -3067,6 +3096,9 @@ public final class PowerManagerService extends SystemService mButtonsLight.setBrightness(BRIGHTNESS_OFF_FLOAT); powerGroup.setButtonOnLocked(false); } if (mKeyboardLight != null) { mKeyboardLight.setBrightness(BRIGHTNESS_OFF_FLOAT); } } } } Loading Loading @@ -3791,6 +3823,10 @@ public final class PowerManagerService extends SystemService return value > PowerManager.BRIGHTNESS_MIN && value <= PowerManager.BRIGHTNESS_MAX; } private static boolean isValidKeyboardBrightness(float value) { return value > PowerManager.BRIGHTNESS_MIN && value <= PowerManager.BRIGHTNESS_MAX; } @VisibleForTesting @GuardedBy("mLock") int getDesiredScreenPolicyLocked(int groupId) { Loading Loading @@ -4837,6 +4873,7 @@ public final class PowerManagerService extends SystemService pw.println(" mButtonBrightness=" + mButtonBrightness); pw.println(" mButtonBrightnessOverrideFromWindowManager=" + mButtonBrightnessOverrideFromWindowManager); pw.println(" mKeyboardBrightness=" + mKeyboardBrightness); pw.println(" mScreenBrightnessOverrideFromWindowManager=" + mScreenBrightnessOverrideFromWindowManager); pw.println(" mUserActivityTimeoutOverrideFromWindowManager=" Loading Loading @@ -6153,6 +6190,8 @@ public final class PowerManagerService extends SystemService return mScreenBrightnessDoze; case PowerManager.BRIGHTNESS_CONSTRAINT_TYPE_DEFAULT_BUTTON: return mButtonBrightnessDefault; case PowerManager.BRIGHTNESS_CONSTRAINT_TYPE_DEFAULT_KEYBOARD: return mKeyboardBrightnessDefault; default: return PowerManager.BRIGHTNESS_INVALID_FLOAT; } Loading Loading @@ -6838,6 +6877,22 @@ public final class PowerManagerService extends SystemService } } @Override // Binder call public void setKeyboardVisibility(boolean visible) { synchronized (mLock) { if (DEBUG_SPEW) { Slog.d(TAG, "setKeyboardVisibility: " + visible); } if (mKeyboardVisible != visible) { mKeyboardVisible = visible; synchronized (mLock) { mDirty |= DIRTY_USER_ACTIVITY; updatePowerStateLocked(); } } } } @Override // Binder call public void setDozeAfterScreenOff(boolean on) { mContext.enforceCallingOrSelfPermission( Loading Loading
core/java/android/os/IPowerManager.aidl +1 −0 Original line number Diff line number Diff line Loading @@ -171,5 +171,6 @@ interface IPowerManager // Lineage custom API void rebootCustom(boolean confirm, String reason, boolean wait); void setKeyboardVisibility(boolean visible); void wakeUpWithProximityCheck(long time, int reason, String details, String opPackageName); }
core/java/android/os/PowerManager.java +20 −1 Original line number Diff line number Diff line Loading @@ -556,7 +556,8 @@ public final class PowerManager { BRIGHTNESS_CONSTRAINT_TYPE_DEFAULT, BRIGHTNESS_CONSTRAINT_TYPE_DIM, BRIGHTNESS_CONSTRAINT_TYPE_DOZE, BRIGHTNESS_CONSTRAINT_TYPE_DEFAULT_BUTTON BRIGHTNESS_CONSTRAINT_TYPE_DEFAULT_BUTTON, BRIGHTNESS_CONSTRAINT_TYPE_DEFAULT_KEYBOARD }) @Retention(RetentionPolicy.SOURCE) public @interface BrightnessConstraint{} Loading Loading @@ -596,6 +597,12 @@ public final class PowerManager { */ public static final int BRIGHTNESS_CONSTRAINT_TYPE_DEFAULT_BUTTON = 8; /** * Brightness constraint type: minimum allowed value. * @hide */ public static final int BRIGHTNESS_CONSTRAINT_TYPE_DEFAULT_KEYBOARD = 9; /** * @hide */ Loading Loading @@ -2850,6 +2857,18 @@ public final class PowerManager { } } /** * @hide */ public void setKeyboardVisibility(boolean visible) { try { if (mService != null) { mService.setKeyboardVisibility(visible); } } catch (RemoteException e) { } } /** * If true, the doze component is not started until after the screen has been * turned off and the screen off animation has been performed. Loading
services/core/java/com/android/server/display/DisplayPowerController2.java +5 −1 Original line number Diff line number Diff line Loading @@ -1303,13 +1303,17 @@ final class DisplayPowerController2 implements AutomaticBrightnessController.Cal final boolean userSetBrightnessChanged = mDisplayBrightnessController .updateUserSetScreenBrightness(); // Disable button lights when screen off or dozing // Disable button and keyboard lights when screen off or dozing if (state == Display.STATE_OFF || state == Display.STATE_DOZE || state == Display.STATE_DOZE_SUSPEND) { LogicalLight buttonsLight = mLights.getLight(LightsManager.LIGHT_ID_BUTTONS); if (buttonsLight != null) { buttonsLight.setBrightness(PowerManager.BRIGHTNESS_OFF_FLOAT); } LogicalLight keyboardLight = mLights.getLight(LightsManager.LIGHT_ID_KEYBOARD); if (keyboardLight != null) { keyboardLight.setBrightness(PowerManager.BRIGHTNESS_OFF_FLOAT); } } DisplayBrightnessState displayBrightnessState = mDisplayBrightnessController Loading
services/core/java/com/android/server/policy/PhoneWindowManager.java +6 −0 Original line number Diff line number Diff line Loading @@ -3009,6 +3009,10 @@ public class PhoneWindowManager implements WindowManagerPolicy { } } private boolean isBuiltInKeyboardVisible() { return mHaveBuiltInKeyboard && !isHidden(mLidKeyboardAccessibility); } /** {@inheritDoc} */ @Override public void adjustConfigurationLw(Configuration config, int keyboardPresence, Loading Loading @@ -5959,6 +5963,8 @@ public class PhoneWindowManager implements WindowManagerPolicy { } private void applyLidSwitchState() { mPowerManager.setKeyboardVisibility(isBuiltInKeyboardVisible()); final int lidState = mDefaultDisplayPolicy.getLidState(); if (lidState == LID_CLOSED) { int lidBehavior = getLidBehavior(); Loading
services/core/java/com/android/server/power/PowerManagerService.java +56 −1 Original line number Diff line number Diff line Loading @@ -354,9 +354,12 @@ public final class PowerManagerService extends SystemService private DreamManagerInternal mDreamManager; private LogicalLight mAttentionLight; private LogicalLight mButtonsLight; private LogicalLight mKeyboardLight; private int mButtonTimeout; private float mButtonBrightness; private boolean mKeyboardVisible; private float mKeyboardBrightness; private boolean mButtonLightOnKeypressOnly; Loading Loading @@ -621,8 +624,9 @@ public final class PowerManagerService extends SystemService // (when {@link #mProximityPositive} is set to false). private boolean mInterceptedPowerKeyForProximity; // Button brightness // Button and keyboard brightness public final float mButtonBrightnessDefault; public final float mKeyboardBrightnessDefault; // Screen brightness setting limits. public final float mScreenBrightnessMinimum; Loading Loading @@ -1219,6 +1223,9 @@ public final class PowerManagerService extends SystemService mButtonBrightnessDefault = mContext.getResources().getFloat( org.lineageos.platform.internal.R.dimen .config_buttonBrightnessSettingDefaultFloat); mKeyboardBrightnessDefault = mContext.getResources().getFloat( org.lineageos.platform.internal.R.dimen .config_keyboardBrightnessSettingDefaultFloat); // Save brightness values: // Get float values from config. Loading Loading @@ -1403,6 +1410,7 @@ public final class PowerManagerService extends SystemService mLightsManager = getLocalService(LightsManager.class); mAttentionLight = mLightsManager.getLight(LightsManager.LIGHT_ID_ATTENTION); mButtonsLight = mLightsManager.getLight(LightsManager.LIGHT_ID_BUTTONS); mKeyboardLight = mLightsManager.getLight(LightsManager.LIGHT_ID_KEYBOARD); updateDeviceConfigLocked(); mDeviceConfigProvider.addOnPropertiesChangedListener(BackgroundThread.getExecutor(), properties -> { Loading Loading @@ -1504,6 +1512,9 @@ public final class PowerManagerService extends SystemService resolver.registerContentObserver(LineageSettings.System.getUriFor( LineageSettings.System.BUTTON_BACKLIGHT_ONLY_WHEN_PRESSED), false, mSettingsObserver, UserHandle.USER_ALL); resolver.registerContentObserver(LineageSettings.Secure.getUriFor( LineageSettings.Secure.KEYBOARD_BRIGHTNESS), false, mSettingsObserver, UserHandle.USER_ALL); // Register for broadcasts from other components of the system. IntentFilter filter = new IntentFilter(); Loading Loading @@ -1648,6 +1659,9 @@ public final class PowerManagerService extends SystemService mButtonLightOnKeypressOnly = LineageSettings.System.getIntForUser(resolver, LineageSettings.System.BUTTON_BACKLIGHT_ONLY_WHEN_PRESSED, 0, UserHandle.USER_CURRENT) == 1; mKeyboardBrightness = LineageSettings.Secure.getFloatForUser(resolver, LineageSettings.Secure.KEYBOARD_BRIGHTNESS, mKeyboardBrightnessDefault, UserHandle.USER_CURRENT); mDirty |= DIRTY_SETTINGS; } Loading Loading @@ -3057,6 +3071,21 @@ public final class PowerManagerService extends SystemService } } } if (mKeyboardLight != null) { float keyboardBrightness = BRIGHTNESS_OFF_FLOAT; if (isValidBrightness(mButtonBrightnessOverrideFromWindowManager)) { if (mButtonBrightnessOverrideFromWindowManager > PowerManager.BRIGHTNESS_MIN) { keyboardBrightness = mButtonBrightnessOverrideFromWindowManager; } } else if (isValidKeyboardBrightness(mKeyboardBrightness)) { keyboardBrightness = mKeyboardBrightness; } mKeyboardLight.setBrightness(mKeyboardVisible ? keyboardBrightness : BRIGHTNESS_OFF_FLOAT); } } } else { groupNextTimeout = lastUserActivityTime + screenOffTimeout; Loading @@ -3067,6 +3096,9 @@ public final class PowerManagerService extends SystemService mButtonsLight.setBrightness(BRIGHTNESS_OFF_FLOAT); powerGroup.setButtonOnLocked(false); } if (mKeyboardLight != null) { mKeyboardLight.setBrightness(BRIGHTNESS_OFF_FLOAT); } } } } Loading Loading @@ -3791,6 +3823,10 @@ public final class PowerManagerService extends SystemService return value > PowerManager.BRIGHTNESS_MIN && value <= PowerManager.BRIGHTNESS_MAX; } private static boolean isValidKeyboardBrightness(float value) { return value > PowerManager.BRIGHTNESS_MIN && value <= PowerManager.BRIGHTNESS_MAX; } @VisibleForTesting @GuardedBy("mLock") int getDesiredScreenPolicyLocked(int groupId) { Loading Loading @@ -4837,6 +4873,7 @@ public final class PowerManagerService extends SystemService pw.println(" mButtonBrightness=" + mButtonBrightness); pw.println(" mButtonBrightnessOverrideFromWindowManager=" + mButtonBrightnessOverrideFromWindowManager); pw.println(" mKeyboardBrightness=" + mKeyboardBrightness); pw.println(" mScreenBrightnessOverrideFromWindowManager=" + mScreenBrightnessOverrideFromWindowManager); pw.println(" mUserActivityTimeoutOverrideFromWindowManager=" Loading Loading @@ -6153,6 +6190,8 @@ public final class PowerManagerService extends SystemService return mScreenBrightnessDoze; case PowerManager.BRIGHTNESS_CONSTRAINT_TYPE_DEFAULT_BUTTON: return mButtonBrightnessDefault; case PowerManager.BRIGHTNESS_CONSTRAINT_TYPE_DEFAULT_KEYBOARD: return mKeyboardBrightnessDefault; default: return PowerManager.BRIGHTNESS_INVALID_FLOAT; } Loading Loading @@ -6838,6 +6877,22 @@ public final class PowerManagerService extends SystemService } } @Override // Binder call public void setKeyboardVisibility(boolean visible) { synchronized (mLock) { if (DEBUG_SPEW) { Slog.d(TAG, "setKeyboardVisibility: " + visible); } if (mKeyboardVisible != visible) { mKeyboardVisible = visible; synchronized (mLock) { mDirty |= DIRTY_USER_ACTIVITY; updatePowerStateLocked(); } } } } @Override // Binder call public void setDozeAfterScreenOff(boolean on) { mContext.enforceCallingOrSelfPermission( Loading