Loading core/java/android/os/IPowerManager.aidl +1 −0 Original line number Diff line number Diff line Loading @@ -99,5 +99,6 @@ interface IPowerManager boolean forceSuspend(); // 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 @@ -466,7 +466,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 @@ -524,6 +525,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 @@ -2074,6 +2081,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 +4 −1 Original line number Diff line number Diff line Loading @@ -865,12 +865,15 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call brightnessState = PowerManager.BRIGHTNESS_OFF_FLOAT; mBrightnessReasonTemp.setReason(BrightnessReason.REASON_SCREEN_OFF); mLights.getLight(LightsManager.LIGHT_ID_BUTTONS).setBrightness(brightnessState); mLights.getLight(LightsManager.LIGHT_ID_KEYBOARD).setBrightness(brightnessState); } // Disable button lights when dozing // Disable button and keyboard lights when dozing if (state == Display.STATE_DOZE || state == Display.STATE_DOZE_SUSPEND) { mLights.getLight(LightsManager.LIGHT_ID_BUTTONS) .setBrightness(PowerManager.BRIGHTNESS_OFF_FLOAT); mLights.getLight(LightsManager.LIGHT_ID_KEYBOARD) .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 @@ -2578,6 +2578,10 @@ public class PhoneWindowManager implements WindowManagerPolicy { } } private boolean isBuiltInKeyboardVisible() { return mHaveBuiltInKeyboard && !isHidden(mLidKeyboardAccessibility); } /** {@inheritDoc} */ @Override public void adjustConfigurationLw(Configuration config, int keyboardPresence, Loading Loading @@ -5672,6 +5676,8 @@ public class PhoneWindowManager implements WindowManagerPolicy { } private void applyLidSwitchState() { mPowerManager.setKeyboardVisibility(isBuiltInKeyboardVisible()); final int lidState = mDefaultDisplayPolicy.getLidState(); if (mLidControlsDisplayFold && mDisplayFoldController != null) { mDisplayFoldController.requestDeviceFolded(lidState == LID_CLOSED); Loading services/core/java/com/android/server/power/PowerManagerService.java +55 −3 Original line number Diff line number Diff line Loading @@ -279,10 +279,14 @@ 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 float mButtonBrightnessSettingDefault; private boolean mKeyboardVisible; private float mKeyboardBrightness; private float mKeyboardBrightnessSettingDefault; private InattentiveSleepWarningController mInattentiveSleepWarningOverlayController; private final AmbientDisplaySuppressionController mAmbientDisplaySuppressionController; Loading Loading @@ -532,6 +536,7 @@ public final class PowerManagerService extends SystemService public final float mScreenBrightnessMaximumVr; public final float mScreenBrightnessDefaultVr; public final float mScreenBrightnessDefaultButton; public final float mScreenBrightnessDefaultKeyboard; // The screen brightness mode. // One of the Settings.System.SCREEN_BRIGHTNESS_MODE_* constants. Loading Loading @@ -1027,7 +1032,11 @@ public final class PowerManagerService extends SystemService } mScreenBrightnessDefaultButton = mContext.getResources().getFloat( org.lineageos.platform.internal.R.dimen.config_buttonBrightnessSettingDefaultFloat); org.lineageos.platform.internal.R.dimen .config_buttonBrightnessSettingDefaultFloat); mScreenBrightnessDefaultKeyboard = mContext.getResources().getFloat( org.lineageos.platform.internal.R.dimen .config_keyboardBrightnessSettingDefaultFloat); synchronized (mLock) { mWakeLockSuspendBlocker = Loading Loading @@ -1101,6 +1110,8 @@ public final class PowerManagerService extends SystemService PowerManager pm = (PowerManager) mContext.getSystemService(Context.POWER_SERVICE); mButtonBrightnessSettingDefault = pm.getBrightnessConstraint( PowerManager.BRIGHTNESS_CONSTRAINT_TYPE_DEFAULT_BUTTON); mKeyboardBrightnessSettingDefault = pm.getBrightnessConstraint( PowerManager.BRIGHTNESS_CONSTRAINT_TYPE_DEFAULT_KEYBOARD); mScreenBrightnessSettingMinimum = pm.getBrightnessConstraint( PowerManager.BRIGHTNESS_CONSTRAINT_TYPE_MINIMUM); mScreenBrightnessSettingMaximum = pm.getBrightnessConstraint( Loading @@ -1126,6 +1137,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 @@ -1204,6 +1216,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); resolver.registerContentObserver(LineageSettings.System.getUriFor( LineageSettings.System.PROXIMITY_ON_WAKE), false, mSettingsObserver, UserHandle.USER_ALL); Loading Loading @@ -1362,6 +1377,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, mKeyboardBrightnessSettingDefault, UserHandle.USER_CURRENT); mProximityWakeEnabled = LineageSettings.System.getInt(resolver, LineageSettings.System.PROXIMITY_ON_WAKE, Loading Loading @@ -2412,7 +2430,7 @@ public final class PowerManagerService extends SystemService buttonBrightness = mButtonBrightnessOverrideFromWindowManager; } } else if (isValidButtonBrightness(mButtonBrightness)) { } else if (isValidButtonOrKeyboardBrightness(mButtonBrightness)) { buttonBrightness = mButtonBrightness; } } Loading Loading @@ -2440,6 +2458,19 @@ public final class PowerManagerService extends SystemService nextTimeout = mLastButtonActivityTime + mButtonTimeout; } } float keyboardBrightness = PowerManager.BRIGHTNESS_OFF_FLOAT; if (isValidBrightness(mButtonBrightnessOverrideFromWindowManager)) { if (mButtonBrightnessOverrideFromWindowManager > PowerManager.BRIGHTNESS_MIN) { keyboardBrightness = mButtonBrightnessOverrideFromWindowManager; } } else if (isValidButtonOrKeyboardBrightness(mKeyboardBrightness)) { keyboardBrightness = mKeyboardBrightness; } mKeyboardLight.setBrightness(mKeyboardVisible ? keyboardBrightness : PowerManager.BRIGHTNESS_OFF_FLOAT); } } else { nextTimeout = mLastUserActivityTime + screenOffTimeout; Loading @@ -2448,6 +2479,8 @@ public final class PowerManagerService extends SystemService if (getWakefulnessLocked() == WAKEFULNESS_AWAKE) { mButtonsLight.setBrightness(PowerManager.BRIGHTNESS_OFF_FLOAT); mButtonOn = false; mKeyboardLight.setBrightness(PowerManager.BRIGHTNESS_OFF_FLOAT); } } } Loading Loading @@ -3083,7 +3116,7 @@ public final class PowerManagerService extends SystemService return value >= PowerManager.BRIGHTNESS_MIN && value <= PowerManager.BRIGHTNESS_MAX; } private static boolean isValidButtonBrightness(float value) { private static boolean isValidButtonOrKeyboardBrightness(float value) { return value > PowerManager.BRIGHTNESS_MIN && value <= PowerManager.BRIGHTNESS_MAX; } Loading Loading @@ -4061,6 +4094,7 @@ public final class PowerManagerService extends SystemService pw.println(" mButtonTimeout=" + mButtonTimeout); pw.println(" mButtonBrightness=" + mButtonBrightness); pw.println(" mButtonBrightnessSettingDefault=" + mButtonBrightnessSettingDefault); pw.println(" mKeyboardBrightnessSettingDefault=" + mKeyboardBrightnessSettingDefault); pw.println(" mScreenBrightnessModeSetting=" + mScreenBrightnessModeSetting); pw.println(" mButtonBrightnessOverrideFromWindowManager=" + mButtonBrightnessOverrideFromWindowManager); Loading Loading @@ -5160,6 +5194,8 @@ public final class PowerManagerService extends SystemService return mScreenBrightnessDefaultVr; case PowerManager.BRIGHTNESS_CONSTRAINT_TYPE_DEFAULT_BUTTON: return mScreenBrightnessDefaultButton; case PowerManager.BRIGHTNESS_CONSTRAINT_TYPE_DEFAULT_KEYBOARD: return mScreenBrightnessDefaultKeyboard; default: return PowerManager.BRIGHTNESS_INVALID_FLOAT; } Loading Loading @@ -5452,6 +5488,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 @@ -99,5 +99,6 @@ interface IPowerManager boolean forceSuspend(); // 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 @@ -466,7 +466,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 @@ -524,6 +525,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 @@ -2074,6 +2081,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 +4 −1 Original line number Diff line number Diff line Loading @@ -865,12 +865,15 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call brightnessState = PowerManager.BRIGHTNESS_OFF_FLOAT; mBrightnessReasonTemp.setReason(BrightnessReason.REASON_SCREEN_OFF); mLights.getLight(LightsManager.LIGHT_ID_BUTTONS).setBrightness(brightnessState); mLights.getLight(LightsManager.LIGHT_ID_KEYBOARD).setBrightness(brightnessState); } // Disable button lights when dozing // Disable button and keyboard lights when dozing if (state == Display.STATE_DOZE || state == Display.STATE_DOZE_SUSPEND) { mLights.getLight(LightsManager.LIGHT_ID_BUTTONS) .setBrightness(PowerManager.BRIGHTNESS_OFF_FLOAT); mLights.getLight(LightsManager.LIGHT_ID_KEYBOARD) .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 @@ -2578,6 +2578,10 @@ public class PhoneWindowManager implements WindowManagerPolicy { } } private boolean isBuiltInKeyboardVisible() { return mHaveBuiltInKeyboard && !isHidden(mLidKeyboardAccessibility); } /** {@inheritDoc} */ @Override public void adjustConfigurationLw(Configuration config, int keyboardPresence, Loading Loading @@ -5672,6 +5676,8 @@ public class PhoneWindowManager implements WindowManagerPolicy { } private void applyLidSwitchState() { mPowerManager.setKeyboardVisibility(isBuiltInKeyboardVisible()); final int lidState = mDefaultDisplayPolicy.getLidState(); if (mLidControlsDisplayFold && mDisplayFoldController != null) { mDisplayFoldController.requestDeviceFolded(lidState == LID_CLOSED); Loading
services/core/java/com/android/server/power/PowerManagerService.java +55 −3 Original line number Diff line number Diff line Loading @@ -279,10 +279,14 @@ 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 float mButtonBrightnessSettingDefault; private boolean mKeyboardVisible; private float mKeyboardBrightness; private float mKeyboardBrightnessSettingDefault; private InattentiveSleepWarningController mInattentiveSleepWarningOverlayController; private final AmbientDisplaySuppressionController mAmbientDisplaySuppressionController; Loading Loading @@ -532,6 +536,7 @@ public final class PowerManagerService extends SystemService public final float mScreenBrightnessMaximumVr; public final float mScreenBrightnessDefaultVr; public final float mScreenBrightnessDefaultButton; public final float mScreenBrightnessDefaultKeyboard; // The screen brightness mode. // One of the Settings.System.SCREEN_BRIGHTNESS_MODE_* constants. Loading Loading @@ -1027,7 +1032,11 @@ public final class PowerManagerService extends SystemService } mScreenBrightnessDefaultButton = mContext.getResources().getFloat( org.lineageos.platform.internal.R.dimen.config_buttonBrightnessSettingDefaultFloat); org.lineageos.platform.internal.R.dimen .config_buttonBrightnessSettingDefaultFloat); mScreenBrightnessDefaultKeyboard = mContext.getResources().getFloat( org.lineageos.platform.internal.R.dimen .config_keyboardBrightnessSettingDefaultFloat); synchronized (mLock) { mWakeLockSuspendBlocker = Loading Loading @@ -1101,6 +1110,8 @@ public final class PowerManagerService extends SystemService PowerManager pm = (PowerManager) mContext.getSystemService(Context.POWER_SERVICE); mButtonBrightnessSettingDefault = pm.getBrightnessConstraint( PowerManager.BRIGHTNESS_CONSTRAINT_TYPE_DEFAULT_BUTTON); mKeyboardBrightnessSettingDefault = pm.getBrightnessConstraint( PowerManager.BRIGHTNESS_CONSTRAINT_TYPE_DEFAULT_KEYBOARD); mScreenBrightnessSettingMinimum = pm.getBrightnessConstraint( PowerManager.BRIGHTNESS_CONSTRAINT_TYPE_MINIMUM); mScreenBrightnessSettingMaximum = pm.getBrightnessConstraint( Loading @@ -1126,6 +1137,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 @@ -1204,6 +1216,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); resolver.registerContentObserver(LineageSettings.System.getUriFor( LineageSettings.System.PROXIMITY_ON_WAKE), false, mSettingsObserver, UserHandle.USER_ALL); Loading Loading @@ -1362,6 +1377,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, mKeyboardBrightnessSettingDefault, UserHandle.USER_CURRENT); mProximityWakeEnabled = LineageSettings.System.getInt(resolver, LineageSettings.System.PROXIMITY_ON_WAKE, Loading Loading @@ -2412,7 +2430,7 @@ public final class PowerManagerService extends SystemService buttonBrightness = mButtonBrightnessOverrideFromWindowManager; } } else if (isValidButtonBrightness(mButtonBrightness)) { } else if (isValidButtonOrKeyboardBrightness(mButtonBrightness)) { buttonBrightness = mButtonBrightness; } } Loading Loading @@ -2440,6 +2458,19 @@ public final class PowerManagerService extends SystemService nextTimeout = mLastButtonActivityTime + mButtonTimeout; } } float keyboardBrightness = PowerManager.BRIGHTNESS_OFF_FLOAT; if (isValidBrightness(mButtonBrightnessOverrideFromWindowManager)) { if (mButtonBrightnessOverrideFromWindowManager > PowerManager.BRIGHTNESS_MIN) { keyboardBrightness = mButtonBrightnessOverrideFromWindowManager; } } else if (isValidButtonOrKeyboardBrightness(mKeyboardBrightness)) { keyboardBrightness = mKeyboardBrightness; } mKeyboardLight.setBrightness(mKeyboardVisible ? keyboardBrightness : PowerManager.BRIGHTNESS_OFF_FLOAT); } } else { nextTimeout = mLastUserActivityTime + screenOffTimeout; Loading @@ -2448,6 +2479,8 @@ public final class PowerManagerService extends SystemService if (getWakefulnessLocked() == WAKEFULNESS_AWAKE) { mButtonsLight.setBrightness(PowerManager.BRIGHTNESS_OFF_FLOAT); mButtonOn = false; mKeyboardLight.setBrightness(PowerManager.BRIGHTNESS_OFF_FLOAT); } } } Loading Loading @@ -3083,7 +3116,7 @@ public final class PowerManagerService extends SystemService return value >= PowerManager.BRIGHTNESS_MIN && value <= PowerManager.BRIGHTNESS_MAX; } private static boolean isValidButtonBrightness(float value) { private static boolean isValidButtonOrKeyboardBrightness(float value) { return value > PowerManager.BRIGHTNESS_MIN && value <= PowerManager.BRIGHTNESS_MAX; } Loading Loading @@ -4061,6 +4094,7 @@ public final class PowerManagerService extends SystemService pw.println(" mButtonTimeout=" + mButtonTimeout); pw.println(" mButtonBrightness=" + mButtonBrightness); pw.println(" mButtonBrightnessSettingDefault=" + mButtonBrightnessSettingDefault); pw.println(" mKeyboardBrightnessSettingDefault=" + mKeyboardBrightnessSettingDefault); pw.println(" mScreenBrightnessModeSetting=" + mScreenBrightnessModeSetting); pw.println(" mButtonBrightnessOverrideFromWindowManager=" + mButtonBrightnessOverrideFromWindowManager); Loading Loading @@ -5160,6 +5194,8 @@ public final class PowerManagerService extends SystemService return mScreenBrightnessDefaultVr; case PowerManager.BRIGHTNESS_CONSTRAINT_TYPE_DEFAULT_BUTTON: return mScreenBrightnessDefaultButton; case PowerManager.BRIGHTNESS_CONSTRAINT_TYPE_DEFAULT_KEYBOARD: return mScreenBrightnessDefaultKeyboard; default: return PowerManager.BRIGHTNESS_INVALID_FLOAT; } Loading Loading @@ -5452,6 +5488,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