Loading services/core/java/com/android/server/display/AutomaticBrightnessController.java +14 −3 Original line number Diff line number Diff line Loading @@ -119,6 +119,8 @@ public class AutomaticBrightnessController { // hysteresis threshold. private final long mBrighteningLightDebounceConfig; private final long mDarkeningLightDebounceConfig; private final long mBrighteningLightDebounceConfigIdle; private final long mDarkeningLightDebounceConfigIdle; // If true immediately after the screen is turned on the controller will try to adjust the // brightness based on the current sensor reads. If false, the controller will collect more data Loading Loading @@ -253,6 +255,7 @@ public class AutomaticBrightnessController { int lightSensorWarmUpTime, float brightnessMin, float brightnessMax, float dozeScaleFactor, int lightSensorRate, int initialLightSensorRate, long brighteningLightDebounceConfig, long darkeningLightDebounceConfig, long brighteningLightDebounceConfigIdle, long darkeningLightDebounceConfigIdle, boolean resetAmbientLuxAfterWarmUpConfig, HysteresisLevels ambientBrightnessThresholds, HysteresisLevels screenBrightnessThresholds, HysteresisLevels ambientBrightnessThresholdsIdle, Loading @@ -265,7 +268,8 @@ public class AutomaticBrightnessController { interactiveModeBrightnessMapper, lightSensorWarmUpTime, brightnessMin, brightnessMax, dozeScaleFactor, lightSensorRate, initialLightSensorRate, brighteningLightDebounceConfig, darkeningLightDebounceConfig, resetAmbientLuxAfterWarmUpConfig, darkeningLightDebounceConfig, brighteningLightDebounceConfigIdle, darkeningLightDebounceConfigIdle, resetAmbientLuxAfterWarmUpConfig, ambientBrightnessThresholds, screenBrightnessThresholds, ambientBrightnessThresholdsIdle, screenBrightnessThresholdsIdle, context, brightnessModeController, brightnessThrottler, idleModeBrightnessMapper, Loading @@ -280,6 +284,7 @@ public class AutomaticBrightnessController { int lightSensorWarmUpTime, float brightnessMin, float brightnessMax, float dozeScaleFactor, int lightSensorRate, int initialLightSensorRate, long brighteningLightDebounceConfig, long darkeningLightDebounceConfig, long brighteningLightDebounceConfigIdle, long darkeningLightDebounceConfigIdle, boolean resetAmbientLuxAfterWarmUpConfig, HysteresisLevels ambientBrightnessThresholds, HysteresisLevels screenBrightnessThresholds, HysteresisLevels ambientBrightnessThresholdsIdle, Loading @@ -303,6 +308,8 @@ public class AutomaticBrightnessController { mCurrentLightSensorRate = -1; mBrighteningLightDebounceConfig = brighteningLightDebounceConfig; mDarkeningLightDebounceConfig = darkeningLightDebounceConfig; mBrighteningLightDebounceConfigIdle = brighteningLightDebounceConfigIdle; mDarkeningLightDebounceConfigIdle = darkeningLightDebounceConfigIdle; mResetAmbientLuxAfterWarmUpConfig = resetAmbientLuxAfterWarmUpConfig; mAmbientLightHorizonLong = ambientLightHorizonLong; mAmbientLightHorizonShort = ambientLightHorizonShort; Loading Loading @@ -561,6 +568,8 @@ public class AutomaticBrightnessController { pw.println(" mLightSensorWarmUpTimeConfig=" + mLightSensorWarmUpTimeConfig); pw.println(" mBrighteningLightDebounceConfig=" + mBrighteningLightDebounceConfig); pw.println(" mDarkeningLightDebounceConfig=" + mDarkeningLightDebounceConfig); pw.println(" mBrighteningLightDebounceConfigIdle=" + mBrighteningLightDebounceConfigIdle); pw.println(" mDarkeningLightDebounceConfigIdle=" + mDarkeningLightDebounceConfigIdle); pw.println(" mResetAmbientLuxAfterWarmUpConfig=" + mResetAmbientLuxAfterWarmUpConfig); pw.println(" mAmbientLightHorizonLong=" + mAmbientLightHorizonLong); pw.println(" mAmbientLightHorizonShort=" + mAmbientLightHorizonShort); Loading Loading @@ -821,7 +830,8 @@ public class AutomaticBrightnessController { } earliestValidTime = mAmbientLightRingBuffer.getTime(i); } return earliestValidTime + mBrighteningLightDebounceConfig; return earliestValidTime + (isInIdleMode() ? mBrighteningLightDebounceConfigIdle : mBrighteningLightDebounceConfig); } private long nextAmbientLightDarkeningTransition(long time) { Loading @@ -833,7 +843,8 @@ public class AutomaticBrightnessController { } earliestValidTime = mAmbientLightRingBuffer.getTime(i); } return earliestValidTime + mDarkeningLightDebounceConfig; return earliestValidTime + (isInIdleMode() ? mDarkeningLightDebounceConfigIdle : mDarkeningLightDebounceConfig); } private void updateAmbientLux() { Loading services/core/java/com/android/server/display/DisplayDeviceConfig.java +68 −2 Original line number Diff line number Diff line Loading @@ -253,13 +253,19 @@ import javax.xml.datatype.DatatypeConfigurationException; * <quirk>canSetBrightnessViaHwc</quirk> * </quirks> * * <autoBrightness enable="true"> * <autoBrightness enabled="true"> * <brighteningLightDebounceMillis> * 2000 * </brighteningLightDebounceMillis> * <darkeningLightDebounceMillis> * 1000 * 4000 * </darkeningLightDebounceMillis> * <brighteningLightDebounceIdleMillis> * 2000 * </brighteningLightDebounceIdleMillis> * <darkeningLightDebounceIdleMillis> * 1000 * </darkeningLightDebounceIdleMillis> * <displayBrightnessMapping> * <displayBrightnessPoint> * <lux>50</lux> Loading Loading @@ -650,6 +656,14 @@ public class DisplayDeviceConfig { private long mAutoBrightnessDarkeningLightDebounce = INVALID_AUTO_BRIGHTNESS_LIGHT_DEBOUNCE; // Represents the auto-brightness brightening light debounce for idle screen brightness mode. private long mAutoBrightnessBrighteningLightDebounceIdle = INVALID_AUTO_BRIGHTNESS_LIGHT_DEBOUNCE; // Represents the auto-brightness darkening light debounce for idle screen brightness mode. private long mAutoBrightnessDarkeningLightDebounceIdle = INVALID_AUTO_BRIGHTNESS_LIGHT_DEBOUNCE; // This setting allows non-default displays to have autobrightness enabled. private boolean mAutoBrightnessAvailable = false; // This stores the raw value loaded from the config file - true if not written. Loading Loading @@ -1446,6 +1460,20 @@ public class DisplayDeviceConfig { return mAutoBrightnessBrighteningLightDebounce; } /** * @return Auto brightness darkening light debounce for idle screen brightness mode */ public long getAutoBrightnessDarkeningLightDebounceIdle() { return mAutoBrightnessDarkeningLightDebounceIdle; } /** * @return Auto brightness brightening light debounce for idle screen brightness mode */ public long getAutoBrightnessBrighteningLightDebounceIdle() { return mAutoBrightnessBrighteningLightDebounceIdle; } /** * @return Auto brightness brightening ambient lux levels */ Loading Loading @@ -1685,6 +1713,10 @@ public class DisplayDeviceConfig { + mAutoBrightnessBrighteningLightDebounce + ", mAutoBrightnessDarkeningLightDebounce= " + mAutoBrightnessDarkeningLightDebounce + ", mAutoBrightnessBrighteningLightDebounceIdle= " + mAutoBrightnessBrighteningLightDebounceIdle + ", mAutoBrightnessDarkeningLightDebounceIdle= " + mAutoBrightnessDarkeningLightDebounceIdle + ", mBrightnessLevelsLux= " + Arrays.toString(mBrightnessLevelsLux) + ", mBrightnessLevelsNits= " + Arrays.toString(mBrightnessLevelsNits) + ", mDdcAutoBrightnessAvailable= " + mDdcAutoBrightnessAvailable Loading Loading @@ -2308,6 +2340,9 @@ public class DisplayDeviceConfig { final AutoBrightness autoBrightness = config.getAutoBrightness(); loadAutoBrightnessBrighteningLightDebounce(autoBrightness); loadAutoBrightnessDarkeningLightDebounce(autoBrightness); // Idle must be called after interactive, since we fall back to it if needed. loadAutoBrightnessBrighteningLightDebounceIdle(autoBrightness); loadAutoBrightnessDarkeningLightDebounceIdle(autoBrightness); loadAutoBrightnessDisplayBrightnessMapping(autoBrightness); loadEnableAutoBrightness(autoBrightness); } Loading Loading @@ -2342,6 +2377,37 @@ public class DisplayDeviceConfig { } } /** * Loads the auto-brightness brightening light debounce for idle mode. Internally, this takes * care of loading the value from the display config, and if not present, falls back to * whichever interactive value was chosen. */ private void loadAutoBrightnessBrighteningLightDebounceIdle( AutoBrightness autoBrightnessConfig) { if (autoBrightnessConfig == null || autoBrightnessConfig.getBrighteningLightDebounceIdleMillis() == null) { mAutoBrightnessBrighteningLightDebounceIdle = mAutoBrightnessBrighteningLightDebounce; } else { mAutoBrightnessBrighteningLightDebounceIdle = autoBrightnessConfig.getBrighteningLightDebounceIdleMillis().intValue(); } } /** * Loads the auto-brightness darkening light debounce for idle mode. Internally, this takes * care of loading the value from the display config, and if not present, falls back to * whichever interactive value was chosen. */ private void loadAutoBrightnessDarkeningLightDebounceIdle(AutoBrightness autoBrightnessConfig) { if (autoBrightnessConfig == null || autoBrightnessConfig.getDarkeningLightDebounceIdleMillis() == null) { mAutoBrightnessDarkeningLightDebounceIdle = mAutoBrightnessDarkeningLightDebounce; } else { mAutoBrightnessDarkeningLightDebounceIdle = autoBrightnessConfig.getDarkeningLightDebounceIdleMillis().intValue(); } } /** * Loads the auto-brightness display brightness mappings. Internally, this takes care of * loading the value from the display config, and if not present, falls back to config.xml. Loading services/core/java/com/android/server/display/DisplayPowerController.java +9 −1 Original line number Diff line number Diff line Loading @@ -1232,6 +1232,10 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call .getAutoBrightnessBrighteningLightDebounce(); long darkeningLightDebounce = mDisplayDeviceConfig .getAutoBrightnessDarkeningLightDebounce(); long brighteningLightDebounceIdle = mDisplayDeviceConfig .getAutoBrightnessBrighteningLightDebounceIdle(); long darkeningLightDebounceIdle = mDisplayDeviceConfig .getAutoBrightnessDarkeningLightDebounceIdle(); boolean autoBrightnessResetAmbientLuxAfterWarmUp = resources.getBoolean( com.android.internal.R.bool.config_autoBrightnessResetAmbientLuxAfterWarmUp); Loading Loading @@ -1271,7 +1275,8 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call mInteractiveModeBrightnessMapper, lightSensorWarmUpTimeConfig, PowerManager.BRIGHTNESS_MIN, PowerManager.BRIGHTNESS_MAX, dozeScaleFactor, lightSensorRate, initialLightSensorRate, brighteningLightDebounce, darkeningLightDebounce, autoBrightnessResetAmbientLuxAfterWarmUp, darkeningLightDebounce, brighteningLightDebounceIdle, darkeningLightDebounceIdle, autoBrightnessResetAmbientLuxAfterWarmUp, ambientBrightnessThresholds, screenBrightnessThresholds, ambientBrightnessThresholdsIdle, screenBrightnessThresholdsIdle, mContext, mBrightnessRangeController, mBrightnessThrottler, mIdleModeBrightnessMapper, Loading Loading @@ -1906,6 +1911,7 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call final float currentBrightness = mPowerState.getScreenBrightness(); final float currentSdrBrightness = mPowerState.getSdrScreenBrightness(); if (isValidBrightnessValue(animateValue) && (animateValue != currentBrightness || sdrAnimateValue != currentSdrBrightness)) { Loading Loading @@ -3536,6 +3542,7 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call int lightSensorWarmUpTime, float brightnessMin, float brightnessMax, float dozeScaleFactor, int lightSensorRate, int initialLightSensorRate, long brighteningLightDebounceConfig, long darkeningLightDebounceConfig, long brighteningLightDebounceConfigIdle, long darkeningLightDebounceConfigIdle, boolean resetAmbientLuxAfterWarmUpConfig, HysteresisLevels ambientBrightnessThresholds, HysteresisLevels screenBrightnessThresholds, Loading @@ -3549,6 +3556,7 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call interactiveModeBrightnessMapper, lightSensorWarmUpTime, brightnessMin, brightnessMax, dozeScaleFactor, lightSensorRate, initialLightSensorRate, brighteningLightDebounceConfig, darkeningLightDebounceConfig, brighteningLightDebounceConfigIdle, darkeningLightDebounceConfigIdle, resetAmbientLuxAfterWarmUpConfig, ambientBrightnessThresholds, screenBrightnessThresholds, ambientBrightnessThresholdsIdle, screenBrightnessThresholdsIdle, context, brightnessRangeController, Loading services/core/java/com/android/server/display/DisplayPowerController2.java +8 −1 Original line number Diff line number Diff line Loading @@ -1043,6 +1043,10 @@ final class DisplayPowerController2 implements AutomaticBrightnessController.Cal .getAutoBrightnessBrighteningLightDebounce(); long darkeningLightDebounce = mDisplayDeviceConfig .getAutoBrightnessDarkeningLightDebounce(); long brighteningLightDebounceIdle = mDisplayDeviceConfig .getAutoBrightnessBrighteningLightDebounceIdle(); long darkeningLightDebounceIdle = mDisplayDeviceConfig .getAutoBrightnessDarkeningLightDebounceIdle(); boolean autoBrightnessResetAmbientLuxAfterWarmUp = resources.getBoolean( R.bool.config_autoBrightnessResetAmbientLuxAfterWarmUp); Loading Loading @@ -1082,7 +1086,8 @@ final class DisplayPowerController2 implements AutomaticBrightnessController.Cal mInteractiveModeBrightnessMapper, lightSensorWarmUpTimeConfig, PowerManager.BRIGHTNESS_MIN, PowerManager.BRIGHTNESS_MAX, dozeScaleFactor, lightSensorRate, initialLightSensorRate, brighteningLightDebounce, darkeningLightDebounce, autoBrightnessResetAmbientLuxAfterWarmUp, darkeningLightDebounce, brighteningLightDebounceIdle, darkeningLightDebounceIdle, autoBrightnessResetAmbientLuxAfterWarmUp, ambientBrightnessThresholds, screenBrightnessThresholds, ambientBrightnessThresholdsIdle, screenBrightnessThresholdsIdle, mContext, mBrightnessRangeController, mBrightnessThrottler, mIdleModeBrightnessMapper, Loading Loading @@ -2886,6 +2891,7 @@ final class DisplayPowerController2 implements AutomaticBrightnessController.Cal int lightSensorWarmUpTime, float brightnessMin, float brightnessMax, float dozeScaleFactor, int lightSensorRate, int initialLightSensorRate, long brighteningLightDebounceConfig, long darkeningLightDebounceConfig, long brighteningLightDebounceConfigIdle, long darkeningLightDebounceConfigIdle, boolean resetAmbientLuxAfterWarmUpConfig, HysteresisLevels ambientBrightnessThresholds, HysteresisLevels screenBrightnessThresholds, Loading @@ -2899,6 +2905,7 @@ final class DisplayPowerController2 implements AutomaticBrightnessController.Cal interactiveModeBrightnessMapper, lightSensorWarmUpTime, brightnessMin, brightnessMax, dozeScaleFactor, lightSensorRate, initialLightSensorRate, brighteningLightDebounceConfig, darkeningLightDebounceConfig, brighteningLightDebounceConfigIdle, darkeningLightDebounceConfigIdle, resetAmbientLuxAfterWarmUpConfig, ambientBrightnessThresholds, screenBrightnessThresholds, ambientBrightnessThresholdsIdle, screenBrightnessThresholdsIdle, context, brightnessModeController, Loading services/core/xsd/display-device-config/display-device-config.xsd +12 −2 Original line number Diff line number Diff line Loading @@ -469,6 +469,16 @@ minOccurs="0" maxOccurs="1"> <xs:annotation name="final"/> </xs:element> <!-- Sets the debounce for autoBrightness brightening in millis while in idle mode --> <xs:element name="brighteningLightDebounceIdleMillis" type="xs:nonNegativeInteger" minOccurs="0" maxOccurs="1"> <xs:annotation name="final"/> </xs:element> <!-- Sets the debounce for autoBrightness darkening in millis while in idle mode --> <xs:element name="darkeningLightDebounceIdleMillis" type="xs:nonNegativeInteger" minOccurs="0" maxOccurs="1"> <xs:annotation name="final"/> </xs:element> <!-- Sets the brightness mapping of the desired screen brightness in nits to the corresponding lux for the current display --> <xs:element name="displayBrightnessMapping" type="displayBrightnessMapping" Loading Loading
services/core/java/com/android/server/display/AutomaticBrightnessController.java +14 −3 Original line number Diff line number Diff line Loading @@ -119,6 +119,8 @@ public class AutomaticBrightnessController { // hysteresis threshold. private final long mBrighteningLightDebounceConfig; private final long mDarkeningLightDebounceConfig; private final long mBrighteningLightDebounceConfigIdle; private final long mDarkeningLightDebounceConfigIdle; // If true immediately after the screen is turned on the controller will try to adjust the // brightness based on the current sensor reads. If false, the controller will collect more data Loading Loading @@ -253,6 +255,7 @@ public class AutomaticBrightnessController { int lightSensorWarmUpTime, float brightnessMin, float brightnessMax, float dozeScaleFactor, int lightSensorRate, int initialLightSensorRate, long brighteningLightDebounceConfig, long darkeningLightDebounceConfig, long brighteningLightDebounceConfigIdle, long darkeningLightDebounceConfigIdle, boolean resetAmbientLuxAfterWarmUpConfig, HysteresisLevels ambientBrightnessThresholds, HysteresisLevels screenBrightnessThresholds, HysteresisLevels ambientBrightnessThresholdsIdle, Loading @@ -265,7 +268,8 @@ public class AutomaticBrightnessController { interactiveModeBrightnessMapper, lightSensorWarmUpTime, brightnessMin, brightnessMax, dozeScaleFactor, lightSensorRate, initialLightSensorRate, brighteningLightDebounceConfig, darkeningLightDebounceConfig, resetAmbientLuxAfterWarmUpConfig, darkeningLightDebounceConfig, brighteningLightDebounceConfigIdle, darkeningLightDebounceConfigIdle, resetAmbientLuxAfterWarmUpConfig, ambientBrightnessThresholds, screenBrightnessThresholds, ambientBrightnessThresholdsIdle, screenBrightnessThresholdsIdle, context, brightnessModeController, brightnessThrottler, idleModeBrightnessMapper, Loading @@ -280,6 +284,7 @@ public class AutomaticBrightnessController { int lightSensorWarmUpTime, float brightnessMin, float brightnessMax, float dozeScaleFactor, int lightSensorRate, int initialLightSensorRate, long brighteningLightDebounceConfig, long darkeningLightDebounceConfig, long brighteningLightDebounceConfigIdle, long darkeningLightDebounceConfigIdle, boolean resetAmbientLuxAfterWarmUpConfig, HysteresisLevels ambientBrightnessThresholds, HysteresisLevels screenBrightnessThresholds, HysteresisLevels ambientBrightnessThresholdsIdle, Loading @@ -303,6 +308,8 @@ public class AutomaticBrightnessController { mCurrentLightSensorRate = -1; mBrighteningLightDebounceConfig = brighteningLightDebounceConfig; mDarkeningLightDebounceConfig = darkeningLightDebounceConfig; mBrighteningLightDebounceConfigIdle = brighteningLightDebounceConfigIdle; mDarkeningLightDebounceConfigIdle = darkeningLightDebounceConfigIdle; mResetAmbientLuxAfterWarmUpConfig = resetAmbientLuxAfterWarmUpConfig; mAmbientLightHorizonLong = ambientLightHorizonLong; mAmbientLightHorizonShort = ambientLightHorizonShort; Loading Loading @@ -561,6 +568,8 @@ public class AutomaticBrightnessController { pw.println(" mLightSensorWarmUpTimeConfig=" + mLightSensorWarmUpTimeConfig); pw.println(" mBrighteningLightDebounceConfig=" + mBrighteningLightDebounceConfig); pw.println(" mDarkeningLightDebounceConfig=" + mDarkeningLightDebounceConfig); pw.println(" mBrighteningLightDebounceConfigIdle=" + mBrighteningLightDebounceConfigIdle); pw.println(" mDarkeningLightDebounceConfigIdle=" + mDarkeningLightDebounceConfigIdle); pw.println(" mResetAmbientLuxAfterWarmUpConfig=" + mResetAmbientLuxAfterWarmUpConfig); pw.println(" mAmbientLightHorizonLong=" + mAmbientLightHorizonLong); pw.println(" mAmbientLightHorizonShort=" + mAmbientLightHorizonShort); Loading Loading @@ -821,7 +830,8 @@ public class AutomaticBrightnessController { } earliestValidTime = mAmbientLightRingBuffer.getTime(i); } return earliestValidTime + mBrighteningLightDebounceConfig; return earliestValidTime + (isInIdleMode() ? mBrighteningLightDebounceConfigIdle : mBrighteningLightDebounceConfig); } private long nextAmbientLightDarkeningTransition(long time) { Loading @@ -833,7 +843,8 @@ public class AutomaticBrightnessController { } earliestValidTime = mAmbientLightRingBuffer.getTime(i); } return earliestValidTime + mDarkeningLightDebounceConfig; return earliestValidTime + (isInIdleMode() ? mDarkeningLightDebounceConfigIdle : mDarkeningLightDebounceConfig); } private void updateAmbientLux() { Loading
services/core/java/com/android/server/display/DisplayDeviceConfig.java +68 −2 Original line number Diff line number Diff line Loading @@ -253,13 +253,19 @@ import javax.xml.datatype.DatatypeConfigurationException; * <quirk>canSetBrightnessViaHwc</quirk> * </quirks> * * <autoBrightness enable="true"> * <autoBrightness enabled="true"> * <brighteningLightDebounceMillis> * 2000 * </brighteningLightDebounceMillis> * <darkeningLightDebounceMillis> * 1000 * 4000 * </darkeningLightDebounceMillis> * <brighteningLightDebounceIdleMillis> * 2000 * </brighteningLightDebounceIdleMillis> * <darkeningLightDebounceIdleMillis> * 1000 * </darkeningLightDebounceIdleMillis> * <displayBrightnessMapping> * <displayBrightnessPoint> * <lux>50</lux> Loading Loading @@ -650,6 +656,14 @@ public class DisplayDeviceConfig { private long mAutoBrightnessDarkeningLightDebounce = INVALID_AUTO_BRIGHTNESS_LIGHT_DEBOUNCE; // Represents the auto-brightness brightening light debounce for idle screen brightness mode. private long mAutoBrightnessBrighteningLightDebounceIdle = INVALID_AUTO_BRIGHTNESS_LIGHT_DEBOUNCE; // Represents the auto-brightness darkening light debounce for idle screen brightness mode. private long mAutoBrightnessDarkeningLightDebounceIdle = INVALID_AUTO_BRIGHTNESS_LIGHT_DEBOUNCE; // This setting allows non-default displays to have autobrightness enabled. private boolean mAutoBrightnessAvailable = false; // This stores the raw value loaded from the config file - true if not written. Loading Loading @@ -1446,6 +1460,20 @@ public class DisplayDeviceConfig { return mAutoBrightnessBrighteningLightDebounce; } /** * @return Auto brightness darkening light debounce for idle screen brightness mode */ public long getAutoBrightnessDarkeningLightDebounceIdle() { return mAutoBrightnessDarkeningLightDebounceIdle; } /** * @return Auto brightness brightening light debounce for idle screen brightness mode */ public long getAutoBrightnessBrighteningLightDebounceIdle() { return mAutoBrightnessBrighteningLightDebounceIdle; } /** * @return Auto brightness brightening ambient lux levels */ Loading Loading @@ -1685,6 +1713,10 @@ public class DisplayDeviceConfig { + mAutoBrightnessBrighteningLightDebounce + ", mAutoBrightnessDarkeningLightDebounce= " + mAutoBrightnessDarkeningLightDebounce + ", mAutoBrightnessBrighteningLightDebounceIdle= " + mAutoBrightnessBrighteningLightDebounceIdle + ", mAutoBrightnessDarkeningLightDebounceIdle= " + mAutoBrightnessDarkeningLightDebounceIdle + ", mBrightnessLevelsLux= " + Arrays.toString(mBrightnessLevelsLux) + ", mBrightnessLevelsNits= " + Arrays.toString(mBrightnessLevelsNits) + ", mDdcAutoBrightnessAvailable= " + mDdcAutoBrightnessAvailable Loading Loading @@ -2308,6 +2340,9 @@ public class DisplayDeviceConfig { final AutoBrightness autoBrightness = config.getAutoBrightness(); loadAutoBrightnessBrighteningLightDebounce(autoBrightness); loadAutoBrightnessDarkeningLightDebounce(autoBrightness); // Idle must be called after interactive, since we fall back to it if needed. loadAutoBrightnessBrighteningLightDebounceIdle(autoBrightness); loadAutoBrightnessDarkeningLightDebounceIdle(autoBrightness); loadAutoBrightnessDisplayBrightnessMapping(autoBrightness); loadEnableAutoBrightness(autoBrightness); } Loading Loading @@ -2342,6 +2377,37 @@ public class DisplayDeviceConfig { } } /** * Loads the auto-brightness brightening light debounce for idle mode. Internally, this takes * care of loading the value from the display config, and if not present, falls back to * whichever interactive value was chosen. */ private void loadAutoBrightnessBrighteningLightDebounceIdle( AutoBrightness autoBrightnessConfig) { if (autoBrightnessConfig == null || autoBrightnessConfig.getBrighteningLightDebounceIdleMillis() == null) { mAutoBrightnessBrighteningLightDebounceIdle = mAutoBrightnessBrighteningLightDebounce; } else { mAutoBrightnessBrighteningLightDebounceIdle = autoBrightnessConfig.getBrighteningLightDebounceIdleMillis().intValue(); } } /** * Loads the auto-brightness darkening light debounce for idle mode. Internally, this takes * care of loading the value from the display config, and if not present, falls back to * whichever interactive value was chosen. */ private void loadAutoBrightnessDarkeningLightDebounceIdle(AutoBrightness autoBrightnessConfig) { if (autoBrightnessConfig == null || autoBrightnessConfig.getDarkeningLightDebounceIdleMillis() == null) { mAutoBrightnessDarkeningLightDebounceIdle = mAutoBrightnessDarkeningLightDebounce; } else { mAutoBrightnessDarkeningLightDebounceIdle = autoBrightnessConfig.getDarkeningLightDebounceIdleMillis().intValue(); } } /** * Loads the auto-brightness display brightness mappings. Internally, this takes care of * loading the value from the display config, and if not present, falls back to config.xml. Loading
services/core/java/com/android/server/display/DisplayPowerController.java +9 −1 Original line number Diff line number Diff line Loading @@ -1232,6 +1232,10 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call .getAutoBrightnessBrighteningLightDebounce(); long darkeningLightDebounce = mDisplayDeviceConfig .getAutoBrightnessDarkeningLightDebounce(); long brighteningLightDebounceIdle = mDisplayDeviceConfig .getAutoBrightnessBrighteningLightDebounceIdle(); long darkeningLightDebounceIdle = mDisplayDeviceConfig .getAutoBrightnessDarkeningLightDebounceIdle(); boolean autoBrightnessResetAmbientLuxAfterWarmUp = resources.getBoolean( com.android.internal.R.bool.config_autoBrightnessResetAmbientLuxAfterWarmUp); Loading Loading @@ -1271,7 +1275,8 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call mInteractiveModeBrightnessMapper, lightSensorWarmUpTimeConfig, PowerManager.BRIGHTNESS_MIN, PowerManager.BRIGHTNESS_MAX, dozeScaleFactor, lightSensorRate, initialLightSensorRate, brighteningLightDebounce, darkeningLightDebounce, autoBrightnessResetAmbientLuxAfterWarmUp, darkeningLightDebounce, brighteningLightDebounceIdle, darkeningLightDebounceIdle, autoBrightnessResetAmbientLuxAfterWarmUp, ambientBrightnessThresholds, screenBrightnessThresholds, ambientBrightnessThresholdsIdle, screenBrightnessThresholdsIdle, mContext, mBrightnessRangeController, mBrightnessThrottler, mIdleModeBrightnessMapper, Loading Loading @@ -1906,6 +1911,7 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call final float currentBrightness = mPowerState.getScreenBrightness(); final float currentSdrBrightness = mPowerState.getSdrScreenBrightness(); if (isValidBrightnessValue(animateValue) && (animateValue != currentBrightness || sdrAnimateValue != currentSdrBrightness)) { Loading Loading @@ -3536,6 +3542,7 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call int lightSensorWarmUpTime, float brightnessMin, float brightnessMax, float dozeScaleFactor, int lightSensorRate, int initialLightSensorRate, long brighteningLightDebounceConfig, long darkeningLightDebounceConfig, long brighteningLightDebounceConfigIdle, long darkeningLightDebounceConfigIdle, boolean resetAmbientLuxAfterWarmUpConfig, HysteresisLevels ambientBrightnessThresholds, HysteresisLevels screenBrightnessThresholds, Loading @@ -3549,6 +3556,7 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call interactiveModeBrightnessMapper, lightSensorWarmUpTime, brightnessMin, brightnessMax, dozeScaleFactor, lightSensorRate, initialLightSensorRate, brighteningLightDebounceConfig, darkeningLightDebounceConfig, brighteningLightDebounceConfigIdle, darkeningLightDebounceConfigIdle, resetAmbientLuxAfterWarmUpConfig, ambientBrightnessThresholds, screenBrightnessThresholds, ambientBrightnessThresholdsIdle, screenBrightnessThresholdsIdle, context, brightnessRangeController, Loading
services/core/java/com/android/server/display/DisplayPowerController2.java +8 −1 Original line number Diff line number Diff line Loading @@ -1043,6 +1043,10 @@ final class DisplayPowerController2 implements AutomaticBrightnessController.Cal .getAutoBrightnessBrighteningLightDebounce(); long darkeningLightDebounce = mDisplayDeviceConfig .getAutoBrightnessDarkeningLightDebounce(); long brighteningLightDebounceIdle = mDisplayDeviceConfig .getAutoBrightnessBrighteningLightDebounceIdle(); long darkeningLightDebounceIdle = mDisplayDeviceConfig .getAutoBrightnessDarkeningLightDebounceIdle(); boolean autoBrightnessResetAmbientLuxAfterWarmUp = resources.getBoolean( R.bool.config_autoBrightnessResetAmbientLuxAfterWarmUp); Loading Loading @@ -1082,7 +1086,8 @@ final class DisplayPowerController2 implements AutomaticBrightnessController.Cal mInteractiveModeBrightnessMapper, lightSensorWarmUpTimeConfig, PowerManager.BRIGHTNESS_MIN, PowerManager.BRIGHTNESS_MAX, dozeScaleFactor, lightSensorRate, initialLightSensorRate, brighteningLightDebounce, darkeningLightDebounce, autoBrightnessResetAmbientLuxAfterWarmUp, darkeningLightDebounce, brighteningLightDebounceIdle, darkeningLightDebounceIdle, autoBrightnessResetAmbientLuxAfterWarmUp, ambientBrightnessThresholds, screenBrightnessThresholds, ambientBrightnessThresholdsIdle, screenBrightnessThresholdsIdle, mContext, mBrightnessRangeController, mBrightnessThrottler, mIdleModeBrightnessMapper, Loading Loading @@ -2886,6 +2891,7 @@ final class DisplayPowerController2 implements AutomaticBrightnessController.Cal int lightSensorWarmUpTime, float brightnessMin, float brightnessMax, float dozeScaleFactor, int lightSensorRate, int initialLightSensorRate, long brighteningLightDebounceConfig, long darkeningLightDebounceConfig, long brighteningLightDebounceConfigIdle, long darkeningLightDebounceConfigIdle, boolean resetAmbientLuxAfterWarmUpConfig, HysteresisLevels ambientBrightnessThresholds, HysteresisLevels screenBrightnessThresholds, Loading @@ -2899,6 +2905,7 @@ final class DisplayPowerController2 implements AutomaticBrightnessController.Cal interactiveModeBrightnessMapper, lightSensorWarmUpTime, brightnessMin, brightnessMax, dozeScaleFactor, lightSensorRate, initialLightSensorRate, brighteningLightDebounceConfig, darkeningLightDebounceConfig, brighteningLightDebounceConfigIdle, darkeningLightDebounceConfigIdle, resetAmbientLuxAfterWarmUpConfig, ambientBrightnessThresholds, screenBrightnessThresholds, ambientBrightnessThresholdsIdle, screenBrightnessThresholdsIdle, context, brightnessModeController, Loading
services/core/xsd/display-device-config/display-device-config.xsd +12 −2 Original line number Diff line number Diff line Loading @@ -469,6 +469,16 @@ minOccurs="0" maxOccurs="1"> <xs:annotation name="final"/> </xs:element> <!-- Sets the debounce for autoBrightness brightening in millis while in idle mode --> <xs:element name="brighteningLightDebounceIdleMillis" type="xs:nonNegativeInteger" minOccurs="0" maxOccurs="1"> <xs:annotation name="final"/> </xs:element> <!-- Sets the debounce for autoBrightness darkening in millis while in idle mode --> <xs:element name="darkeningLightDebounceIdleMillis" type="xs:nonNegativeInteger" minOccurs="0" maxOccurs="1"> <xs:annotation name="final"/> </xs:element> <!-- Sets the brightness mapping of the desired screen brightness in nits to the corresponding lux for the current display --> <xs:element name="displayBrightnessMapping" type="displayBrightnessMapping" Loading