Loading core/res/res/values/config.xml +4 −0 Original line number Diff line number Diff line Loading @@ -1522,6 +1522,10 @@ config_screenBrightnessSettingDefaultFloat instead --> <integer name="config_screenBrightnessSettingDefault">102</integer> <!-- Maximum screen brightness setting when screen brightness capped in Wear Bedtime mode. The value must be in the range [0, 255]. --> <integer name="config_screenBrightnessCapForWearBedtimeMode">20</integer> <!-- Minimum screen brightness setting allowed by power manager. -2 is invalid so setting will resort to int value specified above. Set this to 0.0 to allow screen to go to minimal brightness. Loading core/res/res/values/symbols.xml +1 −0 Original line number Diff line number Diff line Loading @@ -2078,6 +2078,7 @@ <java-symbol type="integer" name="config_screenBrightnessSettingMinimum" /> <java-symbol type="integer" name="config_screenBrightnessSettingMaximum" /> <java-symbol type="integer" name="config_screenBrightnessSettingDefault" /> <java-symbol type="integer" name="config_screenBrightnessCapForWearBedtimeMode" /> <java-symbol type="dimen" name="config_screenBrightnessSettingMinimumFloat" /> <java-symbol type="dimen" name="config_screenBrightnessSettingMaximumFloat" /> <java-symbol type="dimen" name="config_screenBrightnessSettingDefaultFloat" /> Loading services/core/java/com/android/server/display/DisplayDeviceConfig.java +35 −2 Original line number Diff line number Diff line Loading @@ -528,6 +528,7 @@ import javax.xml.datatype.DatatypeConfigurationException; * <majorVersion>2</majorVersion> * <minorVersion>0</minorVersion> * </usiVersion> * <screenBrightnessCapForWearBedtimeMode>0.1</screenBrightnessCapForWearBedtimeMode> * </displayConfiguration> * } * </pre> Loading Loading @@ -843,6 +844,11 @@ public class DisplayDeviceConfig { @Nullable private HdrBrightnessData mHdrBrightnessData; /** * Maximum screen brightness setting when screen brightness capped in Wear Bedtime mode. */ private float mBrightnessCapForWearBedtimeMode; @VisibleForTesting DisplayDeviceConfig(Context context) { mContext = context; Loading Loading @@ -1741,6 +1747,13 @@ public class DisplayDeviceConfig { return mHostUsiVersion; } /** * @return Maximum screen brightness setting when screen brightness capped in Wear Bedtime mode. */ public float getBrightnessCapForWearBedtimeMode() { return mBrightnessCapForWearBedtimeMode; } @Override public String toString() { return "DisplayDeviceConfig{" Loading Loading @@ -1871,7 +1884,8 @@ public class DisplayDeviceConfig { mScreenOffBrightnessSensorValueToLux) + "\n" + "mUsiVersion= " + mHostUsiVersion + "\n" + "mHdrBrightnessData" + mHdrBrightnessData + "mHdrBrightnessData= " + mHdrBrightnessData + "\n" + "mBrightnessCapForWearBedtimeMode= " + mBrightnessCapForWearBedtimeMode + "}"; } Loading Loading @@ -1938,6 +1952,7 @@ public class DisplayDeviceConfig { loadScreenOffBrightnessSensorValueToLuxFromDdc(config); loadUsiVersion(config); mHdrBrightnessData = HdrBrightnessData.loadConfig(config); loadBrightnessCapForWearBedtimeMode(config); } else { Slog.w(TAG, "DisplayDeviceConfig file is null"); } Loading @@ -1961,6 +1976,7 @@ public class DisplayDeviceConfig { loadAutoBrightnessConfigsFromConfigXml(); loadAutoBrightnessAvailableFromConfigXml(); loadRefreshRateSetting(null); loadBrightnessCapForWearBedtimeModeFromConfigXml(); mLoadedFrom = "<config.xml>"; } Loading Loading @@ -3350,6 +3366,23 @@ public class DisplayDeviceConfig { : null; } private void loadBrightnessCapForWearBedtimeMode(DisplayConfiguration config) { if (config != null) { BigDecimal configBrightnessCap = config.getScreenBrightnessCapForWearBedtimeMode(); if (configBrightnessCap != null) { mBrightnessCapForWearBedtimeMode = configBrightnessCap.floatValue(); } else { loadBrightnessCapForWearBedtimeModeFromConfigXml(); } } } private void loadBrightnessCapForWearBedtimeModeFromConfigXml() { mBrightnessCapForWearBedtimeMode = BrightnessSynchronizer.brightnessIntToFloat( mContext.getResources().getInteger(com.android.internal.R.integer .config_screenBrightnessCapForWearBedtimeMode)); } /** * Container for high brightness mode configuration data. */ Loading services/core/java/com/android/server/display/brightness/clamper/BrightnessClamper.java +15 −1 Original line number Diff line number Diff line Loading @@ -17,6 +17,7 @@ package com.android.server.display.brightness.clamper; import android.annotation.NonNull; import android.os.Handler; import android.os.PowerManager; import com.android.server.display.DisplayBrightnessState; Loading @@ -31,6 +32,18 @@ abstract class BrightnessClamper<T> { protected float mBrightnessCap = PowerManager.BRIGHTNESS_MAX; protected boolean mIsActive = false; @NonNull protected final Handler mHandler; @NonNull protected final BrightnessClamperController.ClamperChangeListener mChangeListener; BrightnessClamper(Handler handler, BrightnessClamperController.ClamperChangeListener changeListener) { mHandler = handler; mChangeListener = changeListener; } float getBrightnessCap() { return mBrightnessCap; } Loading Loading @@ -60,6 +73,7 @@ abstract class BrightnessClamper<T> { protected enum Type { THERMAL, POWER POWER, BEDTIME_MODE } } services/core/java/com/android/server/display/brightness/clamper/BrightnessClamperController.java +14 −3 Original line number Diff line number Diff line Loading @@ -90,7 +90,8 @@ public class BrightnessClamperController { } }; mClampers = injector.getClampers(handler, clamperChangeListenerInternal, data, flags); mClampers = injector.getClampers(handler, clamperChangeListenerInternal, data, flags, context); mModifiers = injector.getModifiers(context); mOnPropertiesChangedListener = properties -> mClampers.forEach(BrightnessClamper::onDeviceConfigChanged); Loading Loading @@ -234,7 +235,7 @@ public class BrightnessClamperController { List<BrightnessClamper<? super DisplayDeviceData>> getClampers(Handler handler, ClamperChangeListener clamperChangeListener, DisplayDeviceData data, DisplayManagerFlags flags) { DisplayManagerFlags flags, Context context) { List<BrightnessClamper<? super DisplayDeviceData>> clampers = new ArrayList<>(); clampers.add( new BrightnessThermalClamper(handler, clamperChangeListener, data)); Loading @@ -242,6 +243,10 @@ public class BrightnessClamperController { clampers.add(new BrightnessPowerClamper(handler, clamperChangeListener, data)); } if (flags.isBrightnessWearBedtimeModeClamperEnabled()) { clampers.add(new BrightnessWearBedtimeModeClamper(handler, context, clamperChangeListener, data)); } return clampers; } Loading @@ -257,7 +262,8 @@ public class BrightnessClamperController { * Config Data for clampers */ public static class DisplayDeviceData implements BrightnessThermalClamper.ThermalData, BrightnessPowerClamper.PowerData { BrightnessPowerClamper.PowerData, BrightnessWearBedtimeModeClamper.WearBedtimeModeData { @NonNull private final String mUniqueDisplayId; @NonNull Loading Loading @@ -315,5 +321,10 @@ public class BrightnessClamperController { public PowerThrottlingConfigData getPowerThrottlingConfigData() { return mDisplayDeviceConfig.getPowerThrottlingConfigData(); } @Override public float getBrightnessWearBedtimeModeCap() { return mDisplayDeviceConfig.getBrightnessCapForWearBedtimeMode(); } } } Loading
core/res/res/values/config.xml +4 −0 Original line number Diff line number Diff line Loading @@ -1522,6 +1522,10 @@ config_screenBrightnessSettingDefaultFloat instead --> <integer name="config_screenBrightnessSettingDefault">102</integer> <!-- Maximum screen brightness setting when screen brightness capped in Wear Bedtime mode. The value must be in the range [0, 255]. --> <integer name="config_screenBrightnessCapForWearBedtimeMode">20</integer> <!-- Minimum screen brightness setting allowed by power manager. -2 is invalid so setting will resort to int value specified above. Set this to 0.0 to allow screen to go to minimal brightness. Loading
core/res/res/values/symbols.xml +1 −0 Original line number Diff line number Diff line Loading @@ -2078,6 +2078,7 @@ <java-symbol type="integer" name="config_screenBrightnessSettingMinimum" /> <java-symbol type="integer" name="config_screenBrightnessSettingMaximum" /> <java-symbol type="integer" name="config_screenBrightnessSettingDefault" /> <java-symbol type="integer" name="config_screenBrightnessCapForWearBedtimeMode" /> <java-symbol type="dimen" name="config_screenBrightnessSettingMinimumFloat" /> <java-symbol type="dimen" name="config_screenBrightnessSettingMaximumFloat" /> <java-symbol type="dimen" name="config_screenBrightnessSettingDefaultFloat" /> Loading
services/core/java/com/android/server/display/DisplayDeviceConfig.java +35 −2 Original line number Diff line number Diff line Loading @@ -528,6 +528,7 @@ import javax.xml.datatype.DatatypeConfigurationException; * <majorVersion>2</majorVersion> * <minorVersion>0</minorVersion> * </usiVersion> * <screenBrightnessCapForWearBedtimeMode>0.1</screenBrightnessCapForWearBedtimeMode> * </displayConfiguration> * } * </pre> Loading Loading @@ -843,6 +844,11 @@ public class DisplayDeviceConfig { @Nullable private HdrBrightnessData mHdrBrightnessData; /** * Maximum screen brightness setting when screen brightness capped in Wear Bedtime mode. */ private float mBrightnessCapForWearBedtimeMode; @VisibleForTesting DisplayDeviceConfig(Context context) { mContext = context; Loading Loading @@ -1741,6 +1747,13 @@ public class DisplayDeviceConfig { return mHostUsiVersion; } /** * @return Maximum screen brightness setting when screen brightness capped in Wear Bedtime mode. */ public float getBrightnessCapForWearBedtimeMode() { return mBrightnessCapForWearBedtimeMode; } @Override public String toString() { return "DisplayDeviceConfig{" Loading Loading @@ -1871,7 +1884,8 @@ public class DisplayDeviceConfig { mScreenOffBrightnessSensorValueToLux) + "\n" + "mUsiVersion= " + mHostUsiVersion + "\n" + "mHdrBrightnessData" + mHdrBrightnessData + "mHdrBrightnessData= " + mHdrBrightnessData + "\n" + "mBrightnessCapForWearBedtimeMode= " + mBrightnessCapForWearBedtimeMode + "}"; } Loading Loading @@ -1938,6 +1952,7 @@ public class DisplayDeviceConfig { loadScreenOffBrightnessSensorValueToLuxFromDdc(config); loadUsiVersion(config); mHdrBrightnessData = HdrBrightnessData.loadConfig(config); loadBrightnessCapForWearBedtimeMode(config); } else { Slog.w(TAG, "DisplayDeviceConfig file is null"); } Loading @@ -1961,6 +1976,7 @@ public class DisplayDeviceConfig { loadAutoBrightnessConfigsFromConfigXml(); loadAutoBrightnessAvailableFromConfigXml(); loadRefreshRateSetting(null); loadBrightnessCapForWearBedtimeModeFromConfigXml(); mLoadedFrom = "<config.xml>"; } Loading Loading @@ -3350,6 +3366,23 @@ public class DisplayDeviceConfig { : null; } private void loadBrightnessCapForWearBedtimeMode(DisplayConfiguration config) { if (config != null) { BigDecimal configBrightnessCap = config.getScreenBrightnessCapForWearBedtimeMode(); if (configBrightnessCap != null) { mBrightnessCapForWearBedtimeMode = configBrightnessCap.floatValue(); } else { loadBrightnessCapForWearBedtimeModeFromConfigXml(); } } } private void loadBrightnessCapForWearBedtimeModeFromConfigXml() { mBrightnessCapForWearBedtimeMode = BrightnessSynchronizer.brightnessIntToFloat( mContext.getResources().getInteger(com.android.internal.R.integer .config_screenBrightnessCapForWearBedtimeMode)); } /** * Container for high brightness mode configuration data. */ Loading
services/core/java/com/android/server/display/brightness/clamper/BrightnessClamper.java +15 −1 Original line number Diff line number Diff line Loading @@ -17,6 +17,7 @@ package com.android.server.display.brightness.clamper; import android.annotation.NonNull; import android.os.Handler; import android.os.PowerManager; import com.android.server.display.DisplayBrightnessState; Loading @@ -31,6 +32,18 @@ abstract class BrightnessClamper<T> { protected float mBrightnessCap = PowerManager.BRIGHTNESS_MAX; protected boolean mIsActive = false; @NonNull protected final Handler mHandler; @NonNull protected final BrightnessClamperController.ClamperChangeListener mChangeListener; BrightnessClamper(Handler handler, BrightnessClamperController.ClamperChangeListener changeListener) { mHandler = handler; mChangeListener = changeListener; } float getBrightnessCap() { return mBrightnessCap; } Loading Loading @@ -60,6 +73,7 @@ abstract class BrightnessClamper<T> { protected enum Type { THERMAL, POWER POWER, BEDTIME_MODE } }
services/core/java/com/android/server/display/brightness/clamper/BrightnessClamperController.java +14 −3 Original line number Diff line number Diff line Loading @@ -90,7 +90,8 @@ public class BrightnessClamperController { } }; mClampers = injector.getClampers(handler, clamperChangeListenerInternal, data, flags); mClampers = injector.getClampers(handler, clamperChangeListenerInternal, data, flags, context); mModifiers = injector.getModifiers(context); mOnPropertiesChangedListener = properties -> mClampers.forEach(BrightnessClamper::onDeviceConfigChanged); Loading Loading @@ -234,7 +235,7 @@ public class BrightnessClamperController { List<BrightnessClamper<? super DisplayDeviceData>> getClampers(Handler handler, ClamperChangeListener clamperChangeListener, DisplayDeviceData data, DisplayManagerFlags flags) { DisplayManagerFlags flags, Context context) { List<BrightnessClamper<? super DisplayDeviceData>> clampers = new ArrayList<>(); clampers.add( new BrightnessThermalClamper(handler, clamperChangeListener, data)); Loading @@ -242,6 +243,10 @@ public class BrightnessClamperController { clampers.add(new BrightnessPowerClamper(handler, clamperChangeListener, data)); } if (flags.isBrightnessWearBedtimeModeClamperEnabled()) { clampers.add(new BrightnessWearBedtimeModeClamper(handler, context, clamperChangeListener, data)); } return clampers; } Loading @@ -257,7 +262,8 @@ public class BrightnessClamperController { * Config Data for clampers */ public static class DisplayDeviceData implements BrightnessThermalClamper.ThermalData, BrightnessPowerClamper.PowerData { BrightnessPowerClamper.PowerData, BrightnessWearBedtimeModeClamper.WearBedtimeModeData { @NonNull private final String mUniqueDisplayId; @NonNull Loading Loading @@ -315,5 +321,10 @@ public class BrightnessClamperController { public PowerThrottlingConfigData getPowerThrottlingConfigData() { return mDisplayDeviceConfig.getPowerThrottlingConfigData(); } @Override public float getBrightnessWearBedtimeModeCap() { return mDisplayDeviceConfig.getBrightnessCapForWearBedtimeMode(); } } }