Loading core/java/android/os/PowerManagerInternal.java +2 −2 Original line number Diff line number Diff line Loading @@ -102,9 +102,9 @@ public abstract class PowerManagerInternal { * * This method must only be called by the window manager. * * @param brightness The overridden brightness, or -1 to disable the override. * @param brightness The overridden brightness, or Float.NaN to disable the override. */ public abstract void setScreenBrightnessOverrideFromWindowManager(int brightness); public abstract void setScreenBrightnessOverrideFromWindowManager(float brightness); /** * Used by the window manager to override the user activity timeout based on the Loading services/core/java/com/android/server/power/PowerManagerService.java +14 −19 Original line number Diff line number Diff line Loading @@ -513,10 +513,7 @@ public final class PowerManagerService extends SystemService // The screen brightness setting override from the window manager // to allow the current foreground activity to override the brightness. // Use -1 to disable. private int mScreenBrightnessOverrideFromWindowManager = -1; private float mScreenBrightnessOverrideFromWindowManagerFloat = private float mScreenBrightnessOverrideFromWindowManager = PowerManager.BRIGHTNESS_INVALID_FLOAT; // The window manager has determined the user to be inactive via other means. Loading Loading @@ -2846,7 +2843,7 @@ public final class PowerManagerService extends SystemService screenBrightnessOverride = mScreenBrightnessSettingDefault; } else if (isValidBrightness(mScreenBrightnessOverrideFromWindowManager)) { autoBrightness = false; screenBrightnessOverride = mScreenBrightnessOverrideFromWindowManagerFloat; screenBrightnessOverride = mScreenBrightnessOverrideFromWindowManager; } else { autoBrightness = (mScreenBrightnessModeSetting == Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC); Loading Loading @@ -2927,8 +2924,8 @@ public final class PowerManagerService extends SystemService return !mIsVrModeEnabled && mScreenBrightnessBoostInProgress; } private static boolean isValidBrightness(int value) { return value >= 0 && value <= 255; private static boolean isValidBrightness(float value) { return value >= PowerManager.BRIGHTNESS_MIN && value <= PowerManager.BRIGHTNESS_MAX; } @VisibleForTesting Loading Loading @@ -3583,13 +3580,11 @@ public final class PowerManagerService extends SystemService } } // TODO(brightnessfloat): change to float private void setScreenBrightnessOverrideFromWindowManagerInternal(int brightness) { private void setScreenBrightnessOverrideFromWindowManagerInternal(float brightness) { synchronized (mLock) { if (mScreenBrightnessOverrideFromWindowManager != brightness) { if (!BrightnessSynchronizer.floatEquals(mScreenBrightnessOverrideFromWindowManager, brightness)) { mScreenBrightnessOverrideFromWindowManager = brightness; mScreenBrightnessOverrideFromWindowManagerFloat = BrightnessSynchronizer.brightnessIntToFloat(mContext, brightness); mDirty |= DIRTY_SETTINGS; updatePowerStateLocked(); } Loading Loading @@ -3890,8 +3885,8 @@ public final class PowerManagerService extends SystemService + isMaximumScreenOffTimeoutFromDeviceAdminEnforcedLocked() + ")"); pw.println(" mStayOnWhilePluggedInSetting=" + mStayOnWhilePluggedInSetting); pw.println(" mScreenBrightnessModeSetting=" + mScreenBrightnessModeSetting); pw.println(" mScreenBrightnessOverrideFromWindowManagerFloat=" + mScreenBrightnessOverrideFromWindowManagerFloat); pw.println(" mScreenBrightnessOverrideFromWindowManager=" + mScreenBrightnessOverrideFromWindowManager); pw.println(" mUserActivityTimeoutOverrideFromWindowManager=" + mUserActivityTimeoutOverrideFromWindowManager); pw.println(" mUserInactiveOverrideFromWindowManager=" Loading Loading @@ -4231,7 +4226,7 @@ public final class PowerManagerService extends SystemService proto.write( PowerServiceSettingsAndConfigurationDumpProto .SCREEN_BRIGHTNESS_OVERRIDE_FROM_WINDOW_MANAGER, mScreenBrightnessOverrideFromWindowManagerFloat); mScreenBrightnessOverrideFromWindowManager); proto.write( PowerServiceSettingsAndConfigurationDumpProto .USER_ACTIVITY_TIMEOUT_OVERRIDE_FROM_WINDOW_MANAGER_MS, Loading Loading @@ -5430,10 +5425,10 @@ public final class PowerManagerService extends SystemService @VisibleForTesting final class LocalService extends PowerManagerInternal { @Override public void setScreenBrightnessOverrideFromWindowManager(int screenBrightness) { if (screenBrightness < PowerManager.BRIGHTNESS_DEFAULT || screenBrightness > PowerManager.BRIGHTNESS_ON) { screenBrightness = PowerManager.BRIGHTNESS_DEFAULT; public void setScreenBrightnessOverrideFromWindowManager(float screenBrightness) { if (screenBrightness < PowerManager.BRIGHTNESS_MIN || screenBrightness > PowerManager.BRIGHTNESS_MAX) { screenBrightness = PowerManager.BRIGHTNESS_INVALID_FLOAT; } setScreenBrightnessOverrideFromWindowManagerInternal(screenBrightness); } Loading services/core/java/com/android/server/wm/RootWindowContainer.java +12 −13 Original line number Diff line number Diff line Loading @@ -178,7 +178,7 @@ class RootWindowContainer extends WindowContainer<DisplayContent> private Object mLastWindowFreezeSource = null; private Session mHoldScreen = null; private float mScreenBrightness = -1; private float mScreenBrightnessOverride = PowerManager.BRIGHTNESS_INVALID_FLOAT; private long mUserActivityTimeout = -1; private boolean mUpdateRotation = false; // Following variables are for debugging screen wakelock only. Loading Loading @@ -826,7 +826,7 @@ class RootWindowContainer extends WindowContainer<DisplayContent> } mHoldScreen = null; mScreenBrightness = -1; mScreenBrightnessOverride = PowerManager.BRIGHTNESS_INVALID_FLOAT; mUserActivityTimeout = -1; mObscureApplicationContentOnSecondaryDisplays = false; mSustainedPerformanceModeCurrent = false; Loading Loading @@ -936,12 +936,14 @@ class RootWindowContainer extends WindowContainer<DisplayContent> mWmService.setHoldScreenLocked(mHoldScreen); if (!mWmService.mDisplayFrozen) { final int brightness = mScreenBrightness < 0 || mScreenBrightness > 1.0f ? -1 : toBrightnessOverride(mScreenBrightness); final float brightnessOverride = mScreenBrightnessOverride < PowerManager.BRIGHTNESS_MIN || mScreenBrightnessOverride > PowerManager.BRIGHTNESS_MAX ? PowerManager.BRIGHTNESS_INVALID_FLOAT : mScreenBrightnessOverride; int brightnessFloatAsIntBits = Float.floatToIntBits(brightnessOverride); // Post these on a handler such that we don't call into power manager service while // holding the window manager lock to avoid lock contention with power manager lock. mHandler.obtainMessage(SET_SCREEN_BRIGHTNESS_OVERRIDE, brightness, 0).sendToTarget(); mHandler.obtainMessage(SET_SCREEN_BRIGHTNESS_OVERRIDE, brightnessFloatAsIntBits, 0).sendToTarget(); mHandler.obtainMessage(SET_USER_ACTIVITY_TIMEOUT, mUserActivityTimeout).sendToTarget(); } Loading Loading @@ -1125,8 +1127,9 @@ class RootWindowContainer extends WindowContainer<DisplayContent> + "has FLAG_KEEP_SCREEN_ON!!! called by%s", w, Debug.getCallers(10)); } if (!syswin && w.mAttrs.screenBrightness >= 0 && mScreenBrightness < 0) { mScreenBrightness = w.mAttrs.screenBrightness; if (!syswin && w.mAttrs.screenBrightness >= 0 && Float.isNaN(mScreenBrightnessOverride)) { mScreenBrightnessOverride = w.mAttrs.screenBrightness; } final int type = attrs.type; Loading Loading @@ -1190,10 +1193,6 @@ class RootWindowContainer extends WindowContainer<DisplayContent> return doRequest; } private static int toBrightnessOverride(float value) { return (int)(value * PowerManager.BRIGHTNESS_ON); } private final class MyHandler extends Handler { public MyHandler(Looper looper) { Loading @@ -1205,7 +1204,7 @@ class RootWindowContainer extends WindowContainer<DisplayContent> switch (msg.what) { case SET_SCREEN_BRIGHTNESS_OVERRIDE: mWmService.mPowerManagerInternal.setScreenBrightnessOverrideFromWindowManager( msg.arg1); Float.intBitsToFloat(msg.arg1)); break; case SET_USER_ACTIVITY_TIMEOUT: mWmService.mPowerManagerInternal. Loading Loading
core/java/android/os/PowerManagerInternal.java +2 −2 Original line number Diff line number Diff line Loading @@ -102,9 +102,9 @@ public abstract class PowerManagerInternal { * * This method must only be called by the window manager. * * @param brightness The overridden brightness, or -1 to disable the override. * @param brightness The overridden brightness, or Float.NaN to disable the override. */ public abstract void setScreenBrightnessOverrideFromWindowManager(int brightness); public abstract void setScreenBrightnessOverrideFromWindowManager(float brightness); /** * Used by the window manager to override the user activity timeout based on the Loading
services/core/java/com/android/server/power/PowerManagerService.java +14 −19 Original line number Diff line number Diff line Loading @@ -513,10 +513,7 @@ public final class PowerManagerService extends SystemService // The screen brightness setting override from the window manager // to allow the current foreground activity to override the brightness. // Use -1 to disable. private int mScreenBrightnessOverrideFromWindowManager = -1; private float mScreenBrightnessOverrideFromWindowManagerFloat = private float mScreenBrightnessOverrideFromWindowManager = PowerManager.BRIGHTNESS_INVALID_FLOAT; // The window manager has determined the user to be inactive via other means. Loading Loading @@ -2846,7 +2843,7 @@ public final class PowerManagerService extends SystemService screenBrightnessOverride = mScreenBrightnessSettingDefault; } else if (isValidBrightness(mScreenBrightnessOverrideFromWindowManager)) { autoBrightness = false; screenBrightnessOverride = mScreenBrightnessOverrideFromWindowManagerFloat; screenBrightnessOverride = mScreenBrightnessOverrideFromWindowManager; } else { autoBrightness = (mScreenBrightnessModeSetting == Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC); Loading Loading @@ -2927,8 +2924,8 @@ public final class PowerManagerService extends SystemService return !mIsVrModeEnabled && mScreenBrightnessBoostInProgress; } private static boolean isValidBrightness(int value) { return value >= 0 && value <= 255; private static boolean isValidBrightness(float value) { return value >= PowerManager.BRIGHTNESS_MIN && value <= PowerManager.BRIGHTNESS_MAX; } @VisibleForTesting Loading Loading @@ -3583,13 +3580,11 @@ public final class PowerManagerService extends SystemService } } // TODO(brightnessfloat): change to float private void setScreenBrightnessOverrideFromWindowManagerInternal(int brightness) { private void setScreenBrightnessOverrideFromWindowManagerInternal(float brightness) { synchronized (mLock) { if (mScreenBrightnessOverrideFromWindowManager != brightness) { if (!BrightnessSynchronizer.floatEquals(mScreenBrightnessOverrideFromWindowManager, brightness)) { mScreenBrightnessOverrideFromWindowManager = brightness; mScreenBrightnessOverrideFromWindowManagerFloat = BrightnessSynchronizer.brightnessIntToFloat(mContext, brightness); mDirty |= DIRTY_SETTINGS; updatePowerStateLocked(); } Loading Loading @@ -3890,8 +3885,8 @@ public final class PowerManagerService extends SystemService + isMaximumScreenOffTimeoutFromDeviceAdminEnforcedLocked() + ")"); pw.println(" mStayOnWhilePluggedInSetting=" + mStayOnWhilePluggedInSetting); pw.println(" mScreenBrightnessModeSetting=" + mScreenBrightnessModeSetting); pw.println(" mScreenBrightnessOverrideFromWindowManagerFloat=" + mScreenBrightnessOverrideFromWindowManagerFloat); pw.println(" mScreenBrightnessOverrideFromWindowManager=" + mScreenBrightnessOverrideFromWindowManager); pw.println(" mUserActivityTimeoutOverrideFromWindowManager=" + mUserActivityTimeoutOverrideFromWindowManager); pw.println(" mUserInactiveOverrideFromWindowManager=" Loading Loading @@ -4231,7 +4226,7 @@ public final class PowerManagerService extends SystemService proto.write( PowerServiceSettingsAndConfigurationDumpProto .SCREEN_BRIGHTNESS_OVERRIDE_FROM_WINDOW_MANAGER, mScreenBrightnessOverrideFromWindowManagerFloat); mScreenBrightnessOverrideFromWindowManager); proto.write( PowerServiceSettingsAndConfigurationDumpProto .USER_ACTIVITY_TIMEOUT_OVERRIDE_FROM_WINDOW_MANAGER_MS, Loading Loading @@ -5430,10 +5425,10 @@ public final class PowerManagerService extends SystemService @VisibleForTesting final class LocalService extends PowerManagerInternal { @Override public void setScreenBrightnessOverrideFromWindowManager(int screenBrightness) { if (screenBrightness < PowerManager.BRIGHTNESS_DEFAULT || screenBrightness > PowerManager.BRIGHTNESS_ON) { screenBrightness = PowerManager.BRIGHTNESS_DEFAULT; public void setScreenBrightnessOverrideFromWindowManager(float screenBrightness) { if (screenBrightness < PowerManager.BRIGHTNESS_MIN || screenBrightness > PowerManager.BRIGHTNESS_MAX) { screenBrightness = PowerManager.BRIGHTNESS_INVALID_FLOAT; } setScreenBrightnessOverrideFromWindowManagerInternal(screenBrightness); } Loading
services/core/java/com/android/server/wm/RootWindowContainer.java +12 −13 Original line number Diff line number Diff line Loading @@ -178,7 +178,7 @@ class RootWindowContainer extends WindowContainer<DisplayContent> private Object mLastWindowFreezeSource = null; private Session mHoldScreen = null; private float mScreenBrightness = -1; private float mScreenBrightnessOverride = PowerManager.BRIGHTNESS_INVALID_FLOAT; private long mUserActivityTimeout = -1; private boolean mUpdateRotation = false; // Following variables are for debugging screen wakelock only. Loading Loading @@ -826,7 +826,7 @@ class RootWindowContainer extends WindowContainer<DisplayContent> } mHoldScreen = null; mScreenBrightness = -1; mScreenBrightnessOverride = PowerManager.BRIGHTNESS_INVALID_FLOAT; mUserActivityTimeout = -1; mObscureApplicationContentOnSecondaryDisplays = false; mSustainedPerformanceModeCurrent = false; Loading Loading @@ -936,12 +936,14 @@ class RootWindowContainer extends WindowContainer<DisplayContent> mWmService.setHoldScreenLocked(mHoldScreen); if (!mWmService.mDisplayFrozen) { final int brightness = mScreenBrightness < 0 || mScreenBrightness > 1.0f ? -1 : toBrightnessOverride(mScreenBrightness); final float brightnessOverride = mScreenBrightnessOverride < PowerManager.BRIGHTNESS_MIN || mScreenBrightnessOverride > PowerManager.BRIGHTNESS_MAX ? PowerManager.BRIGHTNESS_INVALID_FLOAT : mScreenBrightnessOverride; int brightnessFloatAsIntBits = Float.floatToIntBits(brightnessOverride); // Post these on a handler such that we don't call into power manager service while // holding the window manager lock to avoid lock contention with power manager lock. mHandler.obtainMessage(SET_SCREEN_BRIGHTNESS_OVERRIDE, brightness, 0).sendToTarget(); mHandler.obtainMessage(SET_SCREEN_BRIGHTNESS_OVERRIDE, brightnessFloatAsIntBits, 0).sendToTarget(); mHandler.obtainMessage(SET_USER_ACTIVITY_TIMEOUT, mUserActivityTimeout).sendToTarget(); } Loading Loading @@ -1125,8 +1127,9 @@ class RootWindowContainer extends WindowContainer<DisplayContent> + "has FLAG_KEEP_SCREEN_ON!!! called by%s", w, Debug.getCallers(10)); } if (!syswin && w.mAttrs.screenBrightness >= 0 && mScreenBrightness < 0) { mScreenBrightness = w.mAttrs.screenBrightness; if (!syswin && w.mAttrs.screenBrightness >= 0 && Float.isNaN(mScreenBrightnessOverride)) { mScreenBrightnessOverride = w.mAttrs.screenBrightness; } final int type = attrs.type; Loading Loading @@ -1190,10 +1193,6 @@ class RootWindowContainer extends WindowContainer<DisplayContent> return doRequest; } private static int toBrightnessOverride(float value) { return (int)(value * PowerManager.BRIGHTNESS_ON); } private final class MyHandler extends Handler { public MyHandler(Looper looper) { Loading @@ -1205,7 +1204,7 @@ class RootWindowContainer extends WindowContainer<DisplayContent> switch (msg.what) { case SET_SCREEN_BRIGHTNESS_OVERRIDE: mWmService.mPowerManagerInternal.setScreenBrightnessOverrideFromWindowManager( msg.arg1); Float.intBitsToFloat(msg.arg1)); break; case SET_USER_ACTIVITY_TIMEOUT: mWmService.mPowerManagerInternal. Loading