Loading core/java/android/os/IPowerManager.aidl +1 −0 Original line number Diff line number Diff line Loading @@ -128,5 +128,6 @@ interface IPowerManager const int GO_TO_SLEEP_FLAG_NO_DOZE = 1 << 0; // Lineage custom API 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 @@ -491,7 +491,8 @@ public final class PowerManager { BRIGHTNESS_CONSTRAINT_TYPE_MINIMUM_VR, BRIGHTNESS_CONSTRAINT_TYPE_MAXIMUM_VR, BRIGHTNESS_CONSTRAINT_TYPE_DEFAULT_VR, BRIGHTNESS_CONSTRAINT_TYPE_DEFAULT_BUTTON BRIGHTNESS_CONSTRAINT_TYPE_DEFAULT_BUTTON, BRIGHTNESS_CONSTRAINT_TYPE_DEFAULT_KEYBOARD }) @Retention(RetentionPolicy.SOURCE) public @interface BrightnessConstraint{} Loading Loading @@ -549,6 +550,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 @@ -2392,6 +2399,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/DisplayPowerController.java +9 −1 Original line number Diff line number Diff line Loading @@ -1133,14 +1133,22 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call if (buttonsLight != null) { buttonsLight.setBrightness(brightnessState); } LogicalLight keyboardLight = mLights.getLight(LightsManager.LIGHT_ID_KEYBOARD); if (keyboardLight != null) { keyboardLight.setBrightness(brightnessState); } } // Disable button lights when dozing // Disable button and keyboard lights when dozing if (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); } } // Always use the VR brightness when in the VR state. Loading services/core/java/com/android/server/policy/PhoneWindowManager.java +6 −0 Original line number Diff line number Diff line Loading @@ -2721,6 +2721,10 @@ public class PhoneWindowManager implements WindowManagerPolicy { } } private boolean isBuiltInKeyboardVisible() { return mHaveBuiltInKeyboard && !isHidden(mLidKeyboardAccessibility); } /** {@inheritDoc} */ @Override public void adjustConfigurationLw(Configuration config, int keyboardPresence, Loading Loading @@ -5674,6 +5678,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 @@ -311,9 +311,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 @@ -575,8 +578,9 @@ public final class PowerManagerService extends SystemService public final float mScreenBrightnessMaximumVr; public final float mScreenBrightnessDefaultVr; // Button brightness // Button and keyboard brightness public final float mButtonBrightnessDefault; public final float mKeyboardBrightnessDefault; // Value we store for tracking face down behavior. private boolean mIsFaceDown = false; Loading Loading @@ -1094,6 +1098,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); synchronized (mLock) { mWakeLockSuspendBlocker = Loading Loading @@ -1211,6 +1218,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); // Initialize display power management. mDisplayManagerInternal.initPowerManagement( Loading Loading @@ -1302,6 +1310,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); IVrManager vrManager = IVrManager.Stub.asInterface(getBinderService(Context.VR_SERVICE)); if (vrManager != null) { Loading Loading @@ -1458,6 +1469,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 @@ -2721,6 +2735,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 @@ -2731,6 +2760,9 @@ public final class PowerManagerService extends SystemService mButtonsLight.setBrightness(BRIGHTNESS_OFF_FLOAT); mDisplayGroupPowerStateMapper.setButtonOnLocked(groupId, false); } if (mKeyboardLight != null) { mKeyboardLight.setBrightness(BRIGHTNESS_OFF_FLOAT); } } } } Loading Loading @@ -3457,6 +3489,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 int getDesiredScreenPolicyLocked(int groupId) { final int wakefulness = mDisplayGroupPowerStateMapper.getWakefulnessLocked(groupId); Loading Loading @@ -4436,6 +4472,7 @@ public final class PowerManagerService extends SystemService pw.println(" mStayOnWhilePluggedInSetting=" + mStayOnWhilePluggedInSetting); pw.println(" mButtonTimeout=" + mButtonTimeout); pw.println(" mButtonBrightness=" + mButtonBrightness); pw.println(" mKeyboardBrightness=" + mKeyboardBrightness); pw.println(" mScreenBrightnessModeSetting=" + mScreenBrightnessModeSetting); pw.println(" mButtonBrightnessOverrideFromWindowManager=" + mButtonBrightnessOverrideFromWindowManager); Loading Loading @@ -5592,6 +5629,8 @@ public final class PowerManagerService extends SystemService return mScreenBrightnessDefaultVr; 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 @@ -6006,6 +6045,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 @@ -128,5 +128,6 @@ interface IPowerManager const int GO_TO_SLEEP_FLAG_NO_DOZE = 1 << 0; // Lineage custom API 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 @@ -491,7 +491,8 @@ public final class PowerManager { BRIGHTNESS_CONSTRAINT_TYPE_MINIMUM_VR, BRIGHTNESS_CONSTRAINT_TYPE_MAXIMUM_VR, BRIGHTNESS_CONSTRAINT_TYPE_DEFAULT_VR, BRIGHTNESS_CONSTRAINT_TYPE_DEFAULT_BUTTON BRIGHTNESS_CONSTRAINT_TYPE_DEFAULT_BUTTON, BRIGHTNESS_CONSTRAINT_TYPE_DEFAULT_KEYBOARD }) @Retention(RetentionPolicy.SOURCE) public @interface BrightnessConstraint{} Loading Loading @@ -549,6 +550,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 @@ -2392,6 +2399,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/DisplayPowerController.java +9 −1 Original line number Diff line number Diff line Loading @@ -1133,14 +1133,22 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call if (buttonsLight != null) { buttonsLight.setBrightness(brightnessState); } LogicalLight keyboardLight = mLights.getLight(LightsManager.LIGHT_ID_KEYBOARD); if (keyboardLight != null) { keyboardLight.setBrightness(brightnessState); } } // Disable button lights when dozing // Disable button and keyboard lights when dozing if (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); } } // Always use the VR brightness when in the VR state. Loading
services/core/java/com/android/server/policy/PhoneWindowManager.java +6 −0 Original line number Diff line number Diff line Loading @@ -2721,6 +2721,10 @@ public class PhoneWindowManager implements WindowManagerPolicy { } } private boolean isBuiltInKeyboardVisible() { return mHaveBuiltInKeyboard && !isHidden(mLidKeyboardAccessibility); } /** {@inheritDoc} */ @Override public void adjustConfigurationLw(Configuration config, int keyboardPresence, Loading Loading @@ -5674,6 +5678,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 @@ -311,9 +311,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 @@ -575,8 +578,9 @@ public final class PowerManagerService extends SystemService public final float mScreenBrightnessMaximumVr; public final float mScreenBrightnessDefaultVr; // Button brightness // Button and keyboard brightness public final float mButtonBrightnessDefault; public final float mKeyboardBrightnessDefault; // Value we store for tracking face down behavior. private boolean mIsFaceDown = false; Loading Loading @@ -1094,6 +1098,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); synchronized (mLock) { mWakeLockSuspendBlocker = Loading Loading @@ -1211,6 +1218,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); // Initialize display power management. mDisplayManagerInternal.initPowerManagement( Loading Loading @@ -1302,6 +1310,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); IVrManager vrManager = IVrManager.Stub.asInterface(getBinderService(Context.VR_SERVICE)); if (vrManager != null) { Loading Loading @@ -1458,6 +1469,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 @@ -2721,6 +2735,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 @@ -2731,6 +2760,9 @@ public final class PowerManagerService extends SystemService mButtonsLight.setBrightness(BRIGHTNESS_OFF_FLOAT); mDisplayGroupPowerStateMapper.setButtonOnLocked(groupId, false); } if (mKeyboardLight != null) { mKeyboardLight.setBrightness(BRIGHTNESS_OFF_FLOAT); } } } } Loading Loading @@ -3457,6 +3489,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 int getDesiredScreenPolicyLocked(int groupId) { final int wakefulness = mDisplayGroupPowerStateMapper.getWakefulnessLocked(groupId); Loading Loading @@ -4436,6 +4472,7 @@ public final class PowerManagerService extends SystemService pw.println(" mStayOnWhilePluggedInSetting=" + mStayOnWhilePluggedInSetting); pw.println(" mButtonTimeout=" + mButtonTimeout); pw.println(" mButtonBrightness=" + mButtonBrightness); pw.println(" mKeyboardBrightness=" + mKeyboardBrightness); pw.println(" mScreenBrightnessModeSetting=" + mScreenBrightnessModeSetting); pw.println(" mButtonBrightnessOverrideFromWindowManager=" + mButtonBrightnessOverrideFromWindowManager); Loading Loading @@ -5592,6 +5629,8 @@ public final class PowerManagerService extends SystemService return mScreenBrightnessDefaultVr; 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 @@ -6006,6 +6045,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