Loading services/core/java/com/android/server/display/DisplayPowerController.java +34 −10 Original line number Original line Diff line number Diff line Loading @@ -507,6 +507,9 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call // The time of inactivity after which the stylus can be assumed to be no longer in use. // The time of inactivity after which the stylus can be assumed to be no longer in use. private long mIdleStylusTimeoutMillisConfig = 0; private long mIdleStylusTimeoutMillisConfig = 0; // Whether wear bedtime mode is enabled in the settings. private boolean mIsWearBedtimeModeEnabled; /** /** * Creates the display power controller. * Creates the display power controller. */ */ Loading Loading @@ -563,6 +566,12 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call mBrightnessTracker = brightnessTracker; mBrightnessTracker = brightnessTracker; mOnBrightnessChangeRunnable = onBrightnessChangeRunnable; mOnBrightnessChangeRunnable = onBrightnessChangeRunnable; mIsWearBedtimeModeEnabled = Settings.Global.getInt(mContext.getContentResolver(), Settings.Global.Wearable.BEDTIME_MODE, /* def= */ 0) == 1; mContext.getContentResolver().registerContentObserver( Settings.Global.getUriFor(Settings.Global.Wearable.BEDTIME_MODE), false /*notifyForDescendants*/, mSettingsObserver, UserHandle.USER_ALL); final Resources resources = context.getResources(); final Resources resources = context.getResources(); // DOZE AND DIM SETTINGS // DOZE AND DIM SETTINGS Loading Loading @@ -1166,8 +1175,7 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call screenBrightnessThresholds, ambientBrightnessThresholdsIdle, screenBrightnessThresholds, ambientBrightnessThresholdsIdle, screenBrightnessThresholdsIdle, mContext, mBrightnessRangeController, screenBrightnessThresholdsIdle, mContext, mBrightnessRangeController, mBrightnessThrottler, mDisplayDeviceConfig.getAmbientHorizonShort(), mBrightnessThrottler, mDisplayDeviceConfig.getAmbientHorizonShort(), mDisplayDeviceConfig.getAmbientHorizonLong(), userLux, userNits, mDisplayDeviceConfig.getAmbientHorizonLong(), userLux, userNits, mFlags); mBrightnessClamperController, mFlags); mDisplayBrightnessController.setUpAutoBrightness( mDisplayBrightnessController.setUpAutoBrightness( mAutomaticBrightnessController, mSensorManager, mDisplayDeviceConfig, mHandler, mAutomaticBrightnessController, mSensorManager, mDisplayDeviceConfig, mHandler, defaultModeBrightnessMapper, mIsEnabled, mLeadDisplayId); defaultModeBrightnessMapper, mIsEnabled, mLeadDisplayId); Loading Loading @@ -1386,9 +1394,12 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call final boolean useDozeBrightness = mFlags.isNormalBrightnessForDozeParameterEnabled() final boolean useDozeBrightness = mFlags.isNormalBrightnessForDozeParameterEnabled() ? (!mPowerRequest.useNormalBrightnessForDoze && mPowerRequest.policy == POLICY_DOZE) ? (!mPowerRequest.useNormalBrightnessForDoze && mPowerRequest.policy == POLICY_DOZE) || Display.isDozeState(state) : Display.isDozeState(state); || Display.isDozeState(state) : Display.isDozeState(state); DisplayBrightnessState displayBrightnessState = DisplayBrightnessState displayBrightnessState = mDisplayBrightnessController mDisplayBrightnessController.updateBrightness( .updateBrightness(mPowerRequest, state, mDisplayOffloadSession); mPowerRequest, state, mDisplayOffloadSession, mIsWearBedtimeModeEnabled); float brightnessState = displayBrightnessState.getBrightness(); float brightnessState = displayBrightnessState.getBrightness(); float rawBrightnessState = displayBrightnessState.getBrightness(); float rawBrightnessState = displayBrightnessState.getBrightness(); mBrightnessReasonTemp.set(displayBrightnessState.getBrightnessReason()); mBrightnessReasonTemp.set(displayBrightnessState.getBrightnessReason()); Loading Loading @@ -1429,16 +1440,24 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call && !mAutomaticBrightnessController.isInIdleMode()) { && !mAutomaticBrightnessController.isInIdleMode()) { // Set sendUpdate to false, we're already in updatePowerState() so there's no need // Set sendUpdate to false, we're already in updatePowerState() so there's no need // to trigger it again // to trigger it again mAutomaticBrightnessController.switchMode(useDozeBrightness if (useDozeBrightness) { ? AUTO_BRIGHTNESS_MODE_DOZE : AUTO_BRIGHTNESS_MODE_DEFAULT, mAutomaticBrightnessController.switchMode(AUTO_BRIGHTNESS_MODE_DOZE, /* sendUpdate= */ false); } else if (mFlags.isAutoBrightnessModeBedtimeWearEnabled() && mIsWearBedtimeModeEnabled) { mAutomaticBrightnessController.switchMode(AUTO_BRIGHTNESS_MODE_BEDTIME_WEAR, /* sendUpdate= */ false); } else { mAutomaticBrightnessController.switchMode(AUTO_BRIGHTNESS_MODE_DEFAULT, /* sendUpdate= */ false); /* sendUpdate= */ false); } } } mAutomaticBrightnessStrategy.setAutoBrightnessState(state, mAutomaticBrightnessStrategy.setAutoBrightnessState(state, allowAutoBrightnessWhileDozing, mBrightnessReasonTemp.getReason(), allowAutoBrightnessWhileDozing, mBrightnessReasonTemp.getReason(), mPowerRequest.policy, mPowerRequest.useNormalBrightnessForDoze, mPowerRequest.policy, mPowerRequest.useNormalBrightnessForDoze, mDisplayBrightnessController.getLastUserSetScreenBrightness(), mDisplayBrightnessController.getLastUserSetScreenBrightness(), userSetBrightnessChanged); userSetBrightnessChanged, mIsWearBedtimeModeEnabled); // If the brightness is already set then it's been overridden by something other than // If the brightness is already set then it's been overridden by something other than // the user, or is a temporary adjustment. // the user, or is a temporary adjustment. Loading Loading @@ -3172,6 +3191,12 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call + autoBrightnessPresetToString(preset)); + autoBrightnessPresetToString(preset)); setUpAutoBrightness(mContext, mHandler); setUpAutoBrightness(mContext, mHandler); sendUpdatePowerState(); sendUpdatePowerState(); } else if (uri.equals( Settings.Global.getUriFor(Settings.Global.Wearable.BEDTIME_MODE))) { mIsWearBedtimeModeEnabled = Settings.Global.getInt(mContext.getContentResolver(), Settings.Global.Wearable.BEDTIME_MODE, /* def= */ 0) == 1; Slog.i(mTag, "Update for bedtime mode. Enable: " + mIsWearBedtimeModeEnabled); sendUpdatePowerState(); } else { } else { handleSettingsChange(); handleSettingsChange(); } } Loading Loading @@ -3275,7 +3300,6 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call BrightnessRangeController brightnessModeController, BrightnessRangeController brightnessModeController, BrightnessThrottler brightnessThrottler, int ambientLightHorizonShort, BrightnessThrottler brightnessThrottler, int ambientLightHorizonShort, int ambientLightHorizonLong, float userLux, float userNits, int ambientLightHorizonLong, float userLux, float userNits, BrightnessClamperController brightnessClamperController, DisplayManagerFlags displayManagerFlags) { DisplayManagerFlags displayManagerFlags) { return new AutomaticBrightnessController(callbacks, looper, sensorManager, lightSensor, return new AutomaticBrightnessController(callbacks, looper, sensorManager, lightSensor, Loading services/core/java/com/android/server/display/brightness/DisplayBrightnessController.java +6 −4 Original line number Original line Diff line number Diff line Loading @@ -150,12 +150,13 @@ public final class DisplayBrightnessController { public DisplayBrightnessState updateBrightness( public DisplayBrightnessState updateBrightness( DisplayManagerInternal.DisplayPowerRequest displayPowerRequest, DisplayManagerInternal.DisplayPowerRequest displayPowerRequest, int targetDisplayState, int targetDisplayState, DisplayManagerInternal.DisplayOffloadSession displayOffloadSession) { DisplayManagerInternal.DisplayOffloadSession displayOffloadSession, boolean isBedtimeModeWearEnabled) { DisplayBrightnessState state; DisplayBrightnessState state; synchronized (mLock) { synchronized (mLock) { mDisplayBrightnessStrategy = mDisplayBrightnessStrategySelector.selectStrategy( mDisplayBrightnessStrategy = mDisplayBrightnessStrategySelector.selectStrategy( constructStrategySelectionRequest(displayPowerRequest, targetDisplayState, constructStrategySelectionRequest(displayPowerRequest, targetDisplayState, displayOffloadSession)); displayOffloadSession, isBedtimeModeWearEnabled)); state = mDisplayBrightnessStrategy state = mDisplayBrightnessStrategy .updateBrightness(constructStrategyExecutionRequest(displayPowerRequest)); .updateBrightness(constructStrategyExecutionRequest(displayPowerRequest)); } } Loading Loading @@ -629,7 +630,8 @@ public final class DisplayBrightnessController { private StrategySelectionRequest constructStrategySelectionRequest( private StrategySelectionRequest constructStrategySelectionRequest( DisplayManagerInternal.DisplayPowerRequest displayPowerRequest, DisplayManagerInternal.DisplayPowerRequest displayPowerRequest, int targetDisplayState, int targetDisplayState, DisplayManagerInternal.DisplayOffloadSession displayOffloadSession) { DisplayManagerInternal.DisplayOffloadSession displayOffloadSession, boolean isBedtimeModeEnabled) { boolean userSetBrightnessChanged = updateUserSetScreenBrightness(); boolean userSetBrightnessChanged = updateUserSetScreenBrightness(); float lastUserSetScreenBrightness; float lastUserSetScreenBrightness; synchronized (mLock) { synchronized (mLock) { Loading @@ -637,7 +639,7 @@ public final class DisplayBrightnessController { } } return new StrategySelectionRequest(displayPowerRequest, targetDisplayState, return new StrategySelectionRequest(displayPowerRequest, targetDisplayState, lastUserSetScreenBrightness, userSetBrightnessChanged, displayOffloadSession, lastUserSetScreenBrightness, userSetBrightnessChanged, displayOffloadSession, mIsStylusBeingUsed); mIsStylusBeingUsed, isBedtimeModeEnabled); } } private StrategyExecutionRequest constructStrategyExecutionRequest( private StrategyExecutionRequest constructStrategyExecutionRequest( Loading services/core/java/com/android/server/display/brightness/DisplayBrightnessStrategySelector.java +4 −2 Original line number Original line Diff line number Diff line Loading @@ -305,7 +305,8 @@ public class DisplayBrightnessStrategySelector { strategySelectionRequest.getDisplayPowerRequest().policy, strategySelectionRequest.getDisplayPowerRequest().policy, strategySelectionRequest.getDisplayPowerRequest().useNormalBrightnessForDoze, strategySelectionRequest.getDisplayPowerRequest().useNormalBrightnessForDoze, strategySelectionRequest.getLastUserSetScreenBrightness(), strategySelectionRequest.getLastUserSetScreenBrightness(), strategySelectionRequest.isUserSetBrightnessChanged()); strategySelectionRequest.isUserSetBrightnessChanged(), strategySelectionRequest.isWearBedtimeModeEnabled()); return !strategySelectionRequest.isStylusBeingUsed() return !strategySelectionRequest.isStylusBeingUsed() && mAutomaticBrightnessStrategy1.isAutoBrightnessValid(); && mAutomaticBrightnessStrategy1.isAutoBrightnessValid(); } } Loading @@ -320,7 +321,8 @@ public class DisplayBrightnessStrategySelector { strategySelectionRequest.getLastUserSetScreenBrightness(), strategySelectionRequest.getLastUserSetScreenBrightness(), strategySelectionRequest.isUserSetBrightnessChanged(), strategySelectionRequest.isUserSetBrightnessChanged(), mAllowAutoBrightnessWhileDozing, mAllowAutoBrightnessWhileDozing, getAutomaticBrightnessStrategy().shouldUseAutoBrightness()); getAutomaticBrightnessStrategy().shouldUseAutoBrightness(), strategySelectionRequest.isWearBedtimeModeEnabled()); } } private void postProcess(StrategySelectionNotifyRequest strategySelectionNotifyRequest) { private void postProcess(StrategySelectionNotifyRequest strategySelectionNotifyRequest) { Loading services/core/java/com/android/server/display/brightness/StrategySelectionNotifyRequest.java +12 −3 Original line number Original line Diff line number Diff line Loading @@ -47,13 +47,15 @@ public final class StrategySelectionNotifyRequest { private final boolean mAllowAutoBrightnessWhileDozingConfig; private final boolean mAllowAutoBrightnessWhileDozingConfig; // True if the auto brightness is enabled in the settings // True if the auto brightness is enabled in the settings private final boolean mIsAutoBrightnessEnabled; private final boolean mIsAutoBrightnessEnabled; // True if wear bedtime mode is enabled in the settings. private final boolean mIsBedtimeModeWearEnabled; public StrategySelectionNotifyRequest( public StrategySelectionNotifyRequest( DisplayManagerInternal.DisplayPowerRequest displayPowerRequest, int targetDisplayState, DisplayManagerInternal.DisplayPowerRequest displayPowerRequest, int targetDisplayState, DisplayBrightnessStrategy displayBrightnessStrategy, DisplayBrightnessStrategy displayBrightnessStrategy, float lastUserSetScreenBrightness, float lastUserSetScreenBrightness, boolean userSetBrightnessChanged, boolean allowAutoBrightnessWhileDozingConfig, boolean userSetBrightnessChanged, boolean allowAutoBrightnessWhileDozingConfig, boolean isAutoBrightnessEnabled) { boolean isAutoBrightnessEnabled, boolean isBedtimeModeWearEnabled) { mDisplayPowerRequest = displayPowerRequest; mDisplayPowerRequest = displayPowerRequest; mTargetDisplayState = targetDisplayState; mTargetDisplayState = targetDisplayState; mSelectedDisplayBrightnessStrategy = displayBrightnessStrategy; mSelectedDisplayBrightnessStrategy = displayBrightnessStrategy; Loading @@ -61,6 +63,7 @@ public final class StrategySelectionNotifyRequest { mUserSetBrightnessChanged = userSetBrightnessChanged; mUserSetBrightnessChanged = userSetBrightnessChanged; mAllowAutoBrightnessWhileDozingConfig = allowAutoBrightnessWhileDozingConfig; mAllowAutoBrightnessWhileDozingConfig = allowAutoBrightnessWhileDozingConfig; mIsAutoBrightnessEnabled = isAutoBrightnessEnabled; mIsAutoBrightnessEnabled = isAutoBrightnessEnabled; mIsBedtimeModeWearEnabled = isBedtimeModeWearEnabled; } } public DisplayBrightnessStrategy getSelectedDisplayBrightnessStrategy() { public DisplayBrightnessStrategy getSelectedDisplayBrightnessStrategy() { Loading @@ -81,7 +84,8 @@ public final class StrategySelectionNotifyRequest { && mLastUserSetScreenBrightness == other.getLastUserSetScreenBrightness() && mLastUserSetScreenBrightness == other.getLastUserSetScreenBrightness() && mAllowAutoBrightnessWhileDozingConfig && mAllowAutoBrightnessWhileDozingConfig == other.isAllowAutoBrightnessWhileDozingConfig() == other.isAllowAutoBrightnessWhileDozingConfig() && mIsAutoBrightnessEnabled == other.isAutoBrightnessEnabled(); && mIsAutoBrightnessEnabled == other.isAutoBrightnessEnabled() && mIsBedtimeModeWearEnabled == other.isBedtimeModeWearEnabled(); } } @Override @Override Loading @@ -99,6 +103,10 @@ public final class StrategySelectionNotifyRequest { return mUserSetBrightnessChanged; return mUserSetBrightnessChanged; } } public boolean isBedtimeModeWearEnabled() { return mIsBedtimeModeWearEnabled; } public DisplayManagerInternal.DisplayPowerRequest getDisplayPowerRequest() { public DisplayManagerInternal.DisplayPowerRequest getDisplayPowerRequest() { return mDisplayPowerRequest; return mDisplayPowerRequest; } } Loading Loading @@ -126,6 +134,7 @@ public final class StrategySelectionNotifyRequest { + " mLastUserSetScreenBrightness=" + mLastUserSetScreenBrightness + " mLastUserSetScreenBrightness=" + mLastUserSetScreenBrightness + " mUserSetBrightnessChanged=" + mUserSetBrightnessChanged + " mUserSetBrightnessChanged=" + mUserSetBrightnessChanged + " mAllowAutoBrightnessWhileDozingConfig=" + mAllowAutoBrightnessWhileDozingConfig + " mAllowAutoBrightnessWhileDozingConfig=" + mAllowAutoBrightnessWhileDozingConfig + " mIsAutoBrightnessEnabled=" + mIsAutoBrightnessEnabled; + " mIsAutoBrightnessEnabled=" + mIsAutoBrightnessEnabled + " mIsBedtimeModeWearEnabled" + mIsBedtimeModeWearEnabled; } } } } services/core/java/com/android/server/display/brightness/StrategySelectionRequest.java +11 −2 Original line number Original line Diff line number Diff line Loading @@ -42,17 +42,21 @@ public final class StrategySelectionRequest { private boolean mIsStylusBeingUsed; private boolean mIsStylusBeingUsed; private boolean mIsWearBedtimeModeEnabled; public StrategySelectionRequest(DisplayManagerInternal.DisplayPowerRequest displayPowerRequest, public StrategySelectionRequest(DisplayManagerInternal.DisplayPowerRequest displayPowerRequest, int targetDisplayState, float lastUserSetScreenBrightness, int targetDisplayState, float lastUserSetScreenBrightness, boolean userSetBrightnessChanged, boolean userSetBrightnessChanged, DisplayManagerInternal.DisplayOffloadSession displayOffloadSession, DisplayManagerInternal.DisplayOffloadSession displayOffloadSession, boolean isStylusBeingUsed) { boolean isStylusBeingUsed, boolean isWearBedtimeModeEnabled) { mDisplayPowerRequest = displayPowerRequest; mDisplayPowerRequest = displayPowerRequest; mTargetDisplayState = targetDisplayState; mTargetDisplayState = targetDisplayState; mLastUserSetScreenBrightness = lastUserSetScreenBrightness; mLastUserSetScreenBrightness = lastUserSetScreenBrightness; mUserSetBrightnessChanged = userSetBrightnessChanged; mUserSetBrightnessChanged = userSetBrightnessChanged; mDisplayOffloadSession = displayOffloadSession; mDisplayOffloadSession = displayOffloadSession; mIsStylusBeingUsed = isStylusBeingUsed; mIsStylusBeingUsed = isStylusBeingUsed; mIsWearBedtimeModeEnabled = isWearBedtimeModeEnabled; } } public DisplayManagerInternal.DisplayPowerRequest getDisplayPowerRequest() { public DisplayManagerInternal.DisplayPowerRequest getDisplayPowerRequest() { Loading @@ -72,6 +76,10 @@ public final class StrategySelectionRequest { return mUserSetBrightnessChanged; return mUserSetBrightnessChanged; } } public boolean isWearBedtimeModeEnabled() { return mIsWearBedtimeModeEnabled; } public DisplayManagerInternal.DisplayOffloadSession getDisplayOffloadSession() { public DisplayManagerInternal.DisplayOffloadSession getDisplayOffloadSession() { return mDisplayOffloadSession; return mDisplayOffloadSession; } } Loading @@ -91,7 +99,8 @@ public final class StrategySelectionRequest { && mLastUserSetScreenBrightness == other.getLastUserSetScreenBrightness() && mLastUserSetScreenBrightness == other.getLastUserSetScreenBrightness() && mUserSetBrightnessChanged == other.isUserSetBrightnessChanged() && mUserSetBrightnessChanged == other.isUserSetBrightnessChanged() && mDisplayOffloadSession.equals(other.getDisplayOffloadSession()) && mDisplayOffloadSession.equals(other.getDisplayOffloadSession()) && mIsStylusBeingUsed == other.isStylusBeingUsed(); && mIsStylusBeingUsed == other.isStylusBeingUsed() && mIsWearBedtimeModeEnabled == other.isWearBedtimeModeEnabled(); } } @Override @Override Loading Loading
services/core/java/com/android/server/display/DisplayPowerController.java +34 −10 Original line number Original line Diff line number Diff line Loading @@ -507,6 +507,9 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call // The time of inactivity after which the stylus can be assumed to be no longer in use. // The time of inactivity after which the stylus can be assumed to be no longer in use. private long mIdleStylusTimeoutMillisConfig = 0; private long mIdleStylusTimeoutMillisConfig = 0; // Whether wear bedtime mode is enabled in the settings. private boolean mIsWearBedtimeModeEnabled; /** /** * Creates the display power controller. * Creates the display power controller. */ */ Loading Loading @@ -563,6 +566,12 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call mBrightnessTracker = brightnessTracker; mBrightnessTracker = brightnessTracker; mOnBrightnessChangeRunnable = onBrightnessChangeRunnable; mOnBrightnessChangeRunnable = onBrightnessChangeRunnable; mIsWearBedtimeModeEnabled = Settings.Global.getInt(mContext.getContentResolver(), Settings.Global.Wearable.BEDTIME_MODE, /* def= */ 0) == 1; mContext.getContentResolver().registerContentObserver( Settings.Global.getUriFor(Settings.Global.Wearable.BEDTIME_MODE), false /*notifyForDescendants*/, mSettingsObserver, UserHandle.USER_ALL); final Resources resources = context.getResources(); final Resources resources = context.getResources(); // DOZE AND DIM SETTINGS // DOZE AND DIM SETTINGS Loading Loading @@ -1166,8 +1175,7 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call screenBrightnessThresholds, ambientBrightnessThresholdsIdle, screenBrightnessThresholds, ambientBrightnessThresholdsIdle, screenBrightnessThresholdsIdle, mContext, mBrightnessRangeController, screenBrightnessThresholdsIdle, mContext, mBrightnessRangeController, mBrightnessThrottler, mDisplayDeviceConfig.getAmbientHorizonShort(), mBrightnessThrottler, mDisplayDeviceConfig.getAmbientHorizonShort(), mDisplayDeviceConfig.getAmbientHorizonLong(), userLux, userNits, mDisplayDeviceConfig.getAmbientHorizonLong(), userLux, userNits, mFlags); mBrightnessClamperController, mFlags); mDisplayBrightnessController.setUpAutoBrightness( mDisplayBrightnessController.setUpAutoBrightness( mAutomaticBrightnessController, mSensorManager, mDisplayDeviceConfig, mHandler, mAutomaticBrightnessController, mSensorManager, mDisplayDeviceConfig, mHandler, defaultModeBrightnessMapper, mIsEnabled, mLeadDisplayId); defaultModeBrightnessMapper, mIsEnabled, mLeadDisplayId); Loading Loading @@ -1386,9 +1394,12 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call final boolean useDozeBrightness = mFlags.isNormalBrightnessForDozeParameterEnabled() final boolean useDozeBrightness = mFlags.isNormalBrightnessForDozeParameterEnabled() ? (!mPowerRequest.useNormalBrightnessForDoze && mPowerRequest.policy == POLICY_DOZE) ? (!mPowerRequest.useNormalBrightnessForDoze && mPowerRequest.policy == POLICY_DOZE) || Display.isDozeState(state) : Display.isDozeState(state); || Display.isDozeState(state) : Display.isDozeState(state); DisplayBrightnessState displayBrightnessState = DisplayBrightnessState displayBrightnessState = mDisplayBrightnessController mDisplayBrightnessController.updateBrightness( .updateBrightness(mPowerRequest, state, mDisplayOffloadSession); mPowerRequest, state, mDisplayOffloadSession, mIsWearBedtimeModeEnabled); float brightnessState = displayBrightnessState.getBrightness(); float brightnessState = displayBrightnessState.getBrightness(); float rawBrightnessState = displayBrightnessState.getBrightness(); float rawBrightnessState = displayBrightnessState.getBrightness(); mBrightnessReasonTemp.set(displayBrightnessState.getBrightnessReason()); mBrightnessReasonTemp.set(displayBrightnessState.getBrightnessReason()); Loading Loading @@ -1429,16 +1440,24 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call && !mAutomaticBrightnessController.isInIdleMode()) { && !mAutomaticBrightnessController.isInIdleMode()) { // Set sendUpdate to false, we're already in updatePowerState() so there's no need // Set sendUpdate to false, we're already in updatePowerState() so there's no need // to trigger it again // to trigger it again mAutomaticBrightnessController.switchMode(useDozeBrightness if (useDozeBrightness) { ? AUTO_BRIGHTNESS_MODE_DOZE : AUTO_BRIGHTNESS_MODE_DEFAULT, mAutomaticBrightnessController.switchMode(AUTO_BRIGHTNESS_MODE_DOZE, /* sendUpdate= */ false); } else if (mFlags.isAutoBrightnessModeBedtimeWearEnabled() && mIsWearBedtimeModeEnabled) { mAutomaticBrightnessController.switchMode(AUTO_BRIGHTNESS_MODE_BEDTIME_WEAR, /* sendUpdate= */ false); } else { mAutomaticBrightnessController.switchMode(AUTO_BRIGHTNESS_MODE_DEFAULT, /* sendUpdate= */ false); /* sendUpdate= */ false); } } } mAutomaticBrightnessStrategy.setAutoBrightnessState(state, mAutomaticBrightnessStrategy.setAutoBrightnessState(state, allowAutoBrightnessWhileDozing, mBrightnessReasonTemp.getReason(), allowAutoBrightnessWhileDozing, mBrightnessReasonTemp.getReason(), mPowerRequest.policy, mPowerRequest.useNormalBrightnessForDoze, mPowerRequest.policy, mPowerRequest.useNormalBrightnessForDoze, mDisplayBrightnessController.getLastUserSetScreenBrightness(), mDisplayBrightnessController.getLastUserSetScreenBrightness(), userSetBrightnessChanged); userSetBrightnessChanged, mIsWearBedtimeModeEnabled); // If the brightness is already set then it's been overridden by something other than // If the brightness is already set then it's been overridden by something other than // the user, or is a temporary adjustment. // the user, or is a temporary adjustment. Loading Loading @@ -3172,6 +3191,12 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call + autoBrightnessPresetToString(preset)); + autoBrightnessPresetToString(preset)); setUpAutoBrightness(mContext, mHandler); setUpAutoBrightness(mContext, mHandler); sendUpdatePowerState(); sendUpdatePowerState(); } else if (uri.equals( Settings.Global.getUriFor(Settings.Global.Wearable.BEDTIME_MODE))) { mIsWearBedtimeModeEnabled = Settings.Global.getInt(mContext.getContentResolver(), Settings.Global.Wearable.BEDTIME_MODE, /* def= */ 0) == 1; Slog.i(mTag, "Update for bedtime mode. Enable: " + mIsWearBedtimeModeEnabled); sendUpdatePowerState(); } else { } else { handleSettingsChange(); handleSettingsChange(); } } Loading Loading @@ -3275,7 +3300,6 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call BrightnessRangeController brightnessModeController, BrightnessRangeController brightnessModeController, BrightnessThrottler brightnessThrottler, int ambientLightHorizonShort, BrightnessThrottler brightnessThrottler, int ambientLightHorizonShort, int ambientLightHorizonLong, float userLux, float userNits, int ambientLightHorizonLong, float userLux, float userNits, BrightnessClamperController brightnessClamperController, DisplayManagerFlags displayManagerFlags) { DisplayManagerFlags displayManagerFlags) { return new AutomaticBrightnessController(callbacks, looper, sensorManager, lightSensor, return new AutomaticBrightnessController(callbacks, looper, sensorManager, lightSensor, Loading
services/core/java/com/android/server/display/brightness/DisplayBrightnessController.java +6 −4 Original line number Original line Diff line number Diff line Loading @@ -150,12 +150,13 @@ public final class DisplayBrightnessController { public DisplayBrightnessState updateBrightness( public DisplayBrightnessState updateBrightness( DisplayManagerInternal.DisplayPowerRequest displayPowerRequest, DisplayManagerInternal.DisplayPowerRequest displayPowerRequest, int targetDisplayState, int targetDisplayState, DisplayManagerInternal.DisplayOffloadSession displayOffloadSession) { DisplayManagerInternal.DisplayOffloadSession displayOffloadSession, boolean isBedtimeModeWearEnabled) { DisplayBrightnessState state; DisplayBrightnessState state; synchronized (mLock) { synchronized (mLock) { mDisplayBrightnessStrategy = mDisplayBrightnessStrategySelector.selectStrategy( mDisplayBrightnessStrategy = mDisplayBrightnessStrategySelector.selectStrategy( constructStrategySelectionRequest(displayPowerRequest, targetDisplayState, constructStrategySelectionRequest(displayPowerRequest, targetDisplayState, displayOffloadSession)); displayOffloadSession, isBedtimeModeWearEnabled)); state = mDisplayBrightnessStrategy state = mDisplayBrightnessStrategy .updateBrightness(constructStrategyExecutionRequest(displayPowerRequest)); .updateBrightness(constructStrategyExecutionRequest(displayPowerRequest)); } } Loading Loading @@ -629,7 +630,8 @@ public final class DisplayBrightnessController { private StrategySelectionRequest constructStrategySelectionRequest( private StrategySelectionRequest constructStrategySelectionRequest( DisplayManagerInternal.DisplayPowerRequest displayPowerRequest, DisplayManagerInternal.DisplayPowerRequest displayPowerRequest, int targetDisplayState, int targetDisplayState, DisplayManagerInternal.DisplayOffloadSession displayOffloadSession) { DisplayManagerInternal.DisplayOffloadSession displayOffloadSession, boolean isBedtimeModeEnabled) { boolean userSetBrightnessChanged = updateUserSetScreenBrightness(); boolean userSetBrightnessChanged = updateUserSetScreenBrightness(); float lastUserSetScreenBrightness; float lastUserSetScreenBrightness; synchronized (mLock) { synchronized (mLock) { Loading @@ -637,7 +639,7 @@ public final class DisplayBrightnessController { } } return new StrategySelectionRequest(displayPowerRequest, targetDisplayState, return new StrategySelectionRequest(displayPowerRequest, targetDisplayState, lastUserSetScreenBrightness, userSetBrightnessChanged, displayOffloadSession, lastUserSetScreenBrightness, userSetBrightnessChanged, displayOffloadSession, mIsStylusBeingUsed); mIsStylusBeingUsed, isBedtimeModeEnabled); } } private StrategyExecutionRequest constructStrategyExecutionRequest( private StrategyExecutionRequest constructStrategyExecutionRequest( Loading
services/core/java/com/android/server/display/brightness/DisplayBrightnessStrategySelector.java +4 −2 Original line number Original line Diff line number Diff line Loading @@ -305,7 +305,8 @@ public class DisplayBrightnessStrategySelector { strategySelectionRequest.getDisplayPowerRequest().policy, strategySelectionRequest.getDisplayPowerRequest().policy, strategySelectionRequest.getDisplayPowerRequest().useNormalBrightnessForDoze, strategySelectionRequest.getDisplayPowerRequest().useNormalBrightnessForDoze, strategySelectionRequest.getLastUserSetScreenBrightness(), strategySelectionRequest.getLastUserSetScreenBrightness(), strategySelectionRequest.isUserSetBrightnessChanged()); strategySelectionRequest.isUserSetBrightnessChanged(), strategySelectionRequest.isWearBedtimeModeEnabled()); return !strategySelectionRequest.isStylusBeingUsed() return !strategySelectionRequest.isStylusBeingUsed() && mAutomaticBrightnessStrategy1.isAutoBrightnessValid(); && mAutomaticBrightnessStrategy1.isAutoBrightnessValid(); } } Loading @@ -320,7 +321,8 @@ public class DisplayBrightnessStrategySelector { strategySelectionRequest.getLastUserSetScreenBrightness(), strategySelectionRequest.getLastUserSetScreenBrightness(), strategySelectionRequest.isUserSetBrightnessChanged(), strategySelectionRequest.isUserSetBrightnessChanged(), mAllowAutoBrightnessWhileDozing, mAllowAutoBrightnessWhileDozing, getAutomaticBrightnessStrategy().shouldUseAutoBrightness()); getAutomaticBrightnessStrategy().shouldUseAutoBrightness(), strategySelectionRequest.isWearBedtimeModeEnabled()); } } private void postProcess(StrategySelectionNotifyRequest strategySelectionNotifyRequest) { private void postProcess(StrategySelectionNotifyRequest strategySelectionNotifyRequest) { Loading
services/core/java/com/android/server/display/brightness/StrategySelectionNotifyRequest.java +12 −3 Original line number Original line Diff line number Diff line Loading @@ -47,13 +47,15 @@ public final class StrategySelectionNotifyRequest { private final boolean mAllowAutoBrightnessWhileDozingConfig; private final boolean mAllowAutoBrightnessWhileDozingConfig; // True if the auto brightness is enabled in the settings // True if the auto brightness is enabled in the settings private final boolean mIsAutoBrightnessEnabled; private final boolean mIsAutoBrightnessEnabled; // True if wear bedtime mode is enabled in the settings. private final boolean mIsBedtimeModeWearEnabled; public StrategySelectionNotifyRequest( public StrategySelectionNotifyRequest( DisplayManagerInternal.DisplayPowerRequest displayPowerRequest, int targetDisplayState, DisplayManagerInternal.DisplayPowerRequest displayPowerRequest, int targetDisplayState, DisplayBrightnessStrategy displayBrightnessStrategy, DisplayBrightnessStrategy displayBrightnessStrategy, float lastUserSetScreenBrightness, float lastUserSetScreenBrightness, boolean userSetBrightnessChanged, boolean allowAutoBrightnessWhileDozingConfig, boolean userSetBrightnessChanged, boolean allowAutoBrightnessWhileDozingConfig, boolean isAutoBrightnessEnabled) { boolean isAutoBrightnessEnabled, boolean isBedtimeModeWearEnabled) { mDisplayPowerRequest = displayPowerRequest; mDisplayPowerRequest = displayPowerRequest; mTargetDisplayState = targetDisplayState; mTargetDisplayState = targetDisplayState; mSelectedDisplayBrightnessStrategy = displayBrightnessStrategy; mSelectedDisplayBrightnessStrategy = displayBrightnessStrategy; Loading @@ -61,6 +63,7 @@ public final class StrategySelectionNotifyRequest { mUserSetBrightnessChanged = userSetBrightnessChanged; mUserSetBrightnessChanged = userSetBrightnessChanged; mAllowAutoBrightnessWhileDozingConfig = allowAutoBrightnessWhileDozingConfig; mAllowAutoBrightnessWhileDozingConfig = allowAutoBrightnessWhileDozingConfig; mIsAutoBrightnessEnabled = isAutoBrightnessEnabled; mIsAutoBrightnessEnabled = isAutoBrightnessEnabled; mIsBedtimeModeWearEnabled = isBedtimeModeWearEnabled; } } public DisplayBrightnessStrategy getSelectedDisplayBrightnessStrategy() { public DisplayBrightnessStrategy getSelectedDisplayBrightnessStrategy() { Loading @@ -81,7 +84,8 @@ public final class StrategySelectionNotifyRequest { && mLastUserSetScreenBrightness == other.getLastUserSetScreenBrightness() && mLastUserSetScreenBrightness == other.getLastUserSetScreenBrightness() && mAllowAutoBrightnessWhileDozingConfig && mAllowAutoBrightnessWhileDozingConfig == other.isAllowAutoBrightnessWhileDozingConfig() == other.isAllowAutoBrightnessWhileDozingConfig() && mIsAutoBrightnessEnabled == other.isAutoBrightnessEnabled(); && mIsAutoBrightnessEnabled == other.isAutoBrightnessEnabled() && mIsBedtimeModeWearEnabled == other.isBedtimeModeWearEnabled(); } } @Override @Override Loading @@ -99,6 +103,10 @@ public final class StrategySelectionNotifyRequest { return mUserSetBrightnessChanged; return mUserSetBrightnessChanged; } } public boolean isBedtimeModeWearEnabled() { return mIsBedtimeModeWearEnabled; } public DisplayManagerInternal.DisplayPowerRequest getDisplayPowerRequest() { public DisplayManagerInternal.DisplayPowerRequest getDisplayPowerRequest() { return mDisplayPowerRequest; return mDisplayPowerRequest; } } Loading Loading @@ -126,6 +134,7 @@ public final class StrategySelectionNotifyRequest { + " mLastUserSetScreenBrightness=" + mLastUserSetScreenBrightness + " mLastUserSetScreenBrightness=" + mLastUserSetScreenBrightness + " mUserSetBrightnessChanged=" + mUserSetBrightnessChanged + " mUserSetBrightnessChanged=" + mUserSetBrightnessChanged + " mAllowAutoBrightnessWhileDozingConfig=" + mAllowAutoBrightnessWhileDozingConfig + " mAllowAutoBrightnessWhileDozingConfig=" + mAllowAutoBrightnessWhileDozingConfig + " mIsAutoBrightnessEnabled=" + mIsAutoBrightnessEnabled; + " mIsAutoBrightnessEnabled=" + mIsAutoBrightnessEnabled + " mIsBedtimeModeWearEnabled" + mIsBedtimeModeWearEnabled; } } } }
services/core/java/com/android/server/display/brightness/StrategySelectionRequest.java +11 −2 Original line number Original line Diff line number Diff line Loading @@ -42,17 +42,21 @@ public final class StrategySelectionRequest { private boolean mIsStylusBeingUsed; private boolean mIsStylusBeingUsed; private boolean mIsWearBedtimeModeEnabled; public StrategySelectionRequest(DisplayManagerInternal.DisplayPowerRequest displayPowerRequest, public StrategySelectionRequest(DisplayManagerInternal.DisplayPowerRequest displayPowerRequest, int targetDisplayState, float lastUserSetScreenBrightness, int targetDisplayState, float lastUserSetScreenBrightness, boolean userSetBrightnessChanged, boolean userSetBrightnessChanged, DisplayManagerInternal.DisplayOffloadSession displayOffloadSession, DisplayManagerInternal.DisplayOffloadSession displayOffloadSession, boolean isStylusBeingUsed) { boolean isStylusBeingUsed, boolean isWearBedtimeModeEnabled) { mDisplayPowerRequest = displayPowerRequest; mDisplayPowerRequest = displayPowerRequest; mTargetDisplayState = targetDisplayState; mTargetDisplayState = targetDisplayState; mLastUserSetScreenBrightness = lastUserSetScreenBrightness; mLastUserSetScreenBrightness = lastUserSetScreenBrightness; mUserSetBrightnessChanged = userSetBrightnessChanged; mUserSetBrightnessChanged = userSetBrightnessChanged; mDisplayOffloadSession = displayOffloadSession; mDisplayOffloadSession = displayOffloadSession; mIsStylusBeingUsed = isStylusBeingUsed; mIsStylusBeingUsed = isStylusBeingUsed; mIsWearBedtimeModeEnabled = isWearBedtimeModeEnabled; } } public DisplayManagerInternal.DisplayPowerRequest getDisplayPowerRequest() { public DisplayManagerInternal.DisplayPowerRequest getDisplayPowerRequest() { Loading @@ -72,6 +76,10 @@ public final class StrategySelectionRequest { return mUserSetBrightnessChanged; return mUserSetBrightnessChanged; } } public boolean isWearBedtimeModeEnabled() { return mIsWearBedtimeModeEnabled; } public DisplayManagerInternal.DisplayOffloadSession getDisplayOffloadSession() { public DisplayManagerInternal.DisplayOffloadSession getDisplayOffloadSession() { return mDisplayOffloadSession; return mDisplayOffloadSession; } } Loading @@ -91,7 +99,8 @@ public final class StrategySelectionRequest { && mLastUserSetScreenBrightness == other.getLastUserSetScreenBrightness() && mLastUserSetScreenBrightness == other.getLastUserSetScreenBrightness() && mUserSetBrightnessChanged == other.isUserSetBrightnessChanged() && mUserSetBrightnessChanged == other.isUserSetBrightnessChanged() && mDisplayOffloadSession.equals(other.getDisplayOffloadSession()) && mDisplayOffloadSession.equals(other.getDisplayOffloadSession()) && mIsStylusBeingUsed == other.isStylusBeingUsed(); && mIsStylusBeingUsed == other.isStylusBeingUsed() && mIsWearBedtimeModeEnabled == other.isWearBedtimeModeEnabled(); } } @Override @Override Loading