Loading core/java/android/hardware/display/ColorDisplayManager.java +6 −1 Original line number Diff line number Diff line Loading @@ -37,6 +37,7 @@ import android.provider.Settings.Secure; import com.android.internal.R; import com.android.internal.logging.MetricsLogger; import com.android.internal.logging.nano.MetricsProto.MetricsEvent; import com.android.server.display.feature.flags.Flags; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; Loading Loading @@ -533,11 +534,15 @@ public final class ColorDisplayManager { /** * Returns {@code true} if reduce bright colors is supported by the device. * Will return false if even dimmer is enabled - since this is the successor to RBC and cannot * be run concurrently. * * @hide */ public static boolean isReduceBrightColorsAvailable(Context context) { return context.getResources().getBoolean(R.bool.config_reduceBrightColorsAvailable); return context.getResources().getBoolean(R.bool.config_reduceBrightColorsAvailable) && !(Flags.evenDimmer() && context.getResources().getBoolean( com.android.internal.R.bool.config_evenDimmerEnabled)); } /** Loading services/core/java/com/android/server/display/DisplayDeviceConfig.java +44 −44 Original line number Diff line number Diff line Loading @@ -54,6 +54,7 @@ import com.android.server.display.config.DisplayBrightnessMappingConfig; import com.android.server.display.config.DisplayBrightnessPoint; import com.android.server.display.config.DisplayConfiguration; import com.android.server.display.config.DisplayQuirks; import com.android.server.display.config.EvenDimmerBrightnessData; import com.android.server.display.config.HbmTiming; import com.android.server.display.config.HdrBrightnessData; import com.android.server.display.config.HighBrightnessMode; Loading @@ -61,7 +62,6 @@ import com.android.server.display.config.IdleScreenRefreshRateTimeout; import com.android.server.display.config.IdleScreenRefreshRateTimeoutLuxThresholdPoint; import com.android.server.display.config.IdleScreenRefreshRateTimeoutLuxThresholds; import com.android.server.display.config.IntegerArray; import com.android.server.display.config.LowBrightnessData; import com.android.server.display.config.LuxThrottling; import com.android.server.display.config.NitsMap; import com.android.server.display.config.NonNegativeFloatToFloatPoint; Loading Loading @@ -556,7 +556,7 @@ import javax.xml.datatype.DatatypeConfigurationException; * <majorVersion>2</majorVersion> * <minorVersion>0</minorVersion> * </usiVersion> * <lowBrightness enabled="true"> * <evenDimmer enabled="true"> * <transitionPoint>0.1</transitionPoint> * * <nits>0.2</nits> Loading @@ -573,7 +573,7 @@ import javax.xml.datatype.DatatypeConfigurationException; * <brightness>0.1</brightness> * <brightness>0.5</brightness> * <brightness>1.0</brightness> * </lowBrightness> * </evenDimmer> * <screenBrightnessCapForWearBedtimeMode>0.1</screenBrightnessCapForWearBedtimeMode> * <idleScreenRefreshRateTimeout> * <luxThresholds> Loading Loading @@ -894,9 +894,9 @@ public class DisplayDeviceConfig { @Nullable private HdrBrightnessData mHdrBrightnessData; // Null if low brightness mode is disabled - in config or by flag. // Null if even dimmer is disabled - in config or by flag. @Nullable public LowBrightnessData mLowBrightnessData; public EvenDimmerBrightnessData mEvenDimmerBrightnessData; /** * Maximum screen brightness setting when screen brightness capped in Wear Bedtime mode. Loading Loading @@ -1064,8 +1064,8 @@ public class DisplayDeviceConfig { * @return The brightness mapping nits array. */ public float[] getNits() { if (mLowBrightnessData != null) { return mLowBrightnessData.mNits; if (mEvenDimmerBrightnessData != null) { return mEvenDimmerBrightnessData.mNits; } return mNits; } Loading @@ -1077,8 +1077,8 @@ public class DisplayDeviceConfig { */ @VisibleForTesting public float[] getBacklight() { if (mLowBrightnessData != null) { return mLowBrightnessData.mBacklight; if (mEvenDimmerBrightnessData != null) { return mEvenDimmerBrightnessData.mBacklight; } return mBacklight; } Loading @@ -1091,8 +1091,8 @@ public class DisplayDeviceConfig { * @return backlight value on the HAL scale of 0-1 */ public float getBacklightFromBrightness(float brightness) { if (mLowBrightnessData != null) { return mLowBrightnessData.mBrightnessToBacklight.interpolate(brightness); if (mEvenDimmerBrightnessData != null) { return mEvenDimmerBrightnessData.mBrightnessToBacklight.interpolate(brightness); } return mBrightnessToBacklightSpline.interpolate(brightness); } Loading @@ -1104,30 +1104,19 @@ public class DisplayDeviceConfig { * @return brightness value from 0-1 framework scale */ public float getBrightnessFromBacklight(float backlight) { if (mLowBrightnessData != null) { return mLowBrightnessData.mBacklightToBrightness.interpolate(backlight); if (mEvenDimmerBrightnessData != null) { return mEvenDimmerBrightnessData.mBacklightToBrightness.interpolate(backlight); } return mBacklightToBrightnessSpline.interpolate(backlight); } /** * * @return low brightness mode transition point */ public float getLowBrightnessTransitionPoint() { if (mLowBrightnessData == null) { return PowerManager.BRIGHTNESS_MIN; } return mLowBrightnessData.mTransitionPoint; } /** * * @return HAL backlight mapping to framework brightness */ private Spline getBacklightToBrightnessSpline() { if (mLowBrightnessData != null) { return mLowBrightnessData.mBacklightToBrightness; if (mEvenDimmerBrightnessData != null) { return mEvenDimmerBrightnessData.mBacklightToBrightness; } return mBacklightToBrightnessSpline; } Loading @@ -1139,12 +1128,12 @@ public class DisplayDeviceConfig { * exits. */ public float getNitsFromBacklight(float backlight) { if (mLowBrightnessData != null) { if (mLowBrightnessData.mBacklightToNits == null) { if (mEvenDimmerBrightnessData != null) { if (mEvenDimmerBrightnessData.mBacklightToNits == null) { return INVALID_NITS; } backlight = Math.max(backlight, mBacklightMinimum); return mLowBrightnessData.mBacklightToNits.interpolate(backlight); return mEvenDimmerBrightnessData.mBacklightToNits.interpolate(backlight); } if (mBacklightToNitsSpline == null) { Loading @@ -1160,15 +1149,15 @@ public class DisplayDeviceConfig { * @return corresponding HAL backlight value */ public float getBacklightFromNits(float nits) { if (mLowBrightnessData != null) { return mLowBrightnessData.mNitsToBacklight.interpolate(nits); if (mEvenDimmerBrightnessData != null) { return mEvenDimmerBrightnessData.mNitsToBacklight.interpolate(nits); } return mNitsToBacklightSpline.interpolate(nits); } private Spline getNitsToBacklightSpline() { if (mLowBrightnessData != null) { return mLowBrightnessData.mNitsToBacklight; if (mEvenDimmerBrightnessData != null) { return mEvenDimmerBrightnessData.mNitsToBacklight; } return mNitsToBacklightSpline; } Loading @@ -1179,10 +1168,21 @@ public class DisplayDeviceConfig { * @return minimum allowed nits, given the lux. */ public float getMinNitsFromLux(float lux) { if (mLowBrightnessData == null) { if (mEvenDimmerBrightnessData == null) { return INVALID_NITS; } return mLowBrightnessData.mMinLuxToNits.interpolate(lux); return mEvenDimmerBrightnessData.mMinLuxToNits.interpolate(lux); } /** * * @return even dimmer mode transition point */ public float getEvenDimmerTransitionPoint() { if (mEvenDimmerBrightnessData == null) { return PowerManager.BRIGHTNESS_MIN; } return mEvenDimmerBrightnessData.mTransitionPoint; } /** Loading Loading @@ -1239,8 +1239,8 @@ public class DisplayDeviceConfig { * @return brightness array */ public float[] getBrightness() { if (mLowBrightnessData != null) { return mLowBrightnessData.mBrightness; if (mEvenDimmerBrightnessData != null) { return mEvenDimmerBrightnessData.mBrightness; } return mBrightness; } Loading Loading @@ -1928,11 +1928,11 @@ public class DisplayDeviceConfig { /** * * @return true if low brightness mode is enabled * @return true if even dimmer mode is enabled */ @VisibleForTesting public boolean getLbmEnabled() { return mLowBrightnessData != null; public boolean isEvenDimmerAvailable() { return mEvenDimmerBrightnessData != null; } /** Loading Loading @@ -2075,8 +2075,8 @@ public class DisplayDeviceConfig { + "mHdrBrightnessData= " + mHdrBrightnessData + "\n" + "mBrightnessCapForWearBedtimeMode= " + mBrightnessCapForWearBedtimeMode + "\n" + "mLowBrightnessData:" + (mLowBrightnessData != null ? mLowBrightnessData.toString() : "null") + "mEvenDimmerBrightnessData:" + (mEvenDimmerBrightnessData != null ? mEvenDimmerBrightnessData.toString() : "null") + "}"; } Loading Loading @@ -2128,7 +2128,7 @@ public class DisplayDeviceConfig { loadBrightnessDefaultFromDdcXml(config); loadBrightnessConstraintsFromConfigXml(); if (mFlags.isEvenDimmerEnabled()) { mLowBrightnessData = LowBrightnessData.loadConfig(config); mEvenDimmerBrightnessData = EvenDimmerBrightnessData.loadConfig(config); } loadBrightnessMap(config); loadThermalThrottlingConfig(config); Loading Loading @@ -2923,7 +2923,7 @@ public class DisplayDeviceConfig { private void createBacklightConversionSplines() { // Create original brightness splines - not using low brightness mode arrays - this is // Create original brightness splines - not using even dimmer mode arrays - this is // so that we can continue to log the original brightness splines. mBrightness = new float[mBacklight.length]; Loading services/core/java/com/android/server/display/LocalDisplayAdapter.java +10 −2 Original line number Diff line number Diff line Loading @@ -53,6 +53,7 @@ import com.android.internal.annotations.VisibleForTesting; import com.android.internal.display.BrightnessSynchronizer; import com.android.internal.util.function.pooled.PooledLambda; import com.android.server.LocalServices; import com.android.server.display.color.ColorDisplayService; import com.android.server.display.feature.DisplayManagerFlags; import com.android.server.display.mode.DisplayModeDirector; import com.android.server.display.notifications.DisplayNotificationManager; Loading Loading @@ -100,6 +101,7 @@ final class LocalDisplayAdapter extends DisplayAdapter { private Context mOverlayContext; private int mEvenDimmerStrength = -1; private ColorDisplayService.ColorDisplayServiceInternal mCdsi; // Called with SyncRoot lock held. LocalDisplayAdapter(DisplayManagerService.SyncRoot syncRoot, Context context, Loading Loading @@ -1000,9 +1002,15 @@ final class LocalDisplayAdapter extends DisplayAdapter { || strength <= 1) { mEvenDimmerStrength = strength; } boolean enabled = mEvenDimmerStrength > 0.0f; // TODO: use `enabled` and `mRbcStrength` to set color matrices here // TODO: boolean enabled = mEvenDimmerStrength > 0.0f; if (mCdsi == null) { mCdsi = LocalServices.getService( ColorDisplayService.ColorDisplayServiceInternal.class); } if (mCdsi != null) { mCdsi.applyEvenDimmerColorChanges(enabled, strength); } } }; } Loading services/core/java/com/android/server/display/brightness/clamper/BrightnessLowLuxModifier.java +1 −1 Original line number Diff line number Diff line Loading @@ -106,7 +106,7 @@ public class BrightnessLowLuxModifier extends BrightnessModifier { ? BrightnessReason.MODIFIER_MIN_USER_SET_LOWER_BOUND : BrightnessReason.MODIFIER_MIN_LUX; } else { minBrightnessAllowed = mDisplayDeviceConfig.getLowBrightnessTransitionPoint(); minBrightnessAllowed = mDisplayDeviceConfig.getEvenDimmerTransitionPoint(); reason = 0; } Loading services/core/java/com/android/server/display/color/ColorDisplayService.java +9 −0 Original line number Diff line number Diff line Loading @@ -1632,6 +1632,15 @@ public final class ColorDisplayService extends SystemService { return mAppSaturationController .addColorTransformController(packageName, userId, controller); } /** * Applies tint changes for even dimmer feature. */ public void applyEvenDimmerColorChanges(boolean enabled, int strength) { mReduceBrightColorsTintController.setActivated(enabled); mReduceBrightColorsTintController.setMatrix(strength); mHandler.sendEmptyMessage(MSG_APPLY_REDUCE_BRIGHT_COLORS); } } /** Loading Loading
core/java/android/hardware/display/ColorDisplayManager.java +6 −1 Original line number Diff line number Diff line Loading @@ -37,6 +37,7 @@ import android.provider.Settings.Secure; import com.android.internal.R; import com.android.internal.logging.MetricsLogger; import com.android.internal.logging.nano.MetricsProto.MetricsEvent; import com.android.server.display.feature.flags.Flags; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; Loading Loading @@ -533,11 +534,15 @@ public final class ColorDisplayManager { /** * Returns {@code true} if reduce bright colors is supported by the device. * Will return false if even dimmer is enabled - since this is the successor to RBC and cannot * be run concurrently. * * @hide */ public static boolean isReduceBrightColorsAvailable(Context context) { return context.getResources().getBoolean(R.bool.config_reduceBrightColorsAvailable); return context.getResources().getBoolean(R.bool.config_reduceBrightColorsAvailable) && !(Flags.evenDimmer() && context.getResources().getBoolean( com.android.internal.R.bool.config_evenDimmerEnabled)); } /** Loading
services/core/java/com/android/server/display/DisplayDeviceConfig.java +44 −44 Original line number Diff line number Diff line Loading @@ -54,6 +54,7 @@ import com.android.server.display.config.DisplayBrightnessMappingConfig; import com.android.server.display.config.DisplayBrightnessPoint; import com.android.server.display.config.DisplayConfiguration; import com.android.server.display.config.DisplayQuirks; import com.android.server.display.config.EvenDimmerBrightnessData; import com.android.server.display.config.HbmTiming; import com.android.server.display.config.HdrBrightnessData; import com.android.server.display.config.HighBrightnessMode; Loading @@ -61,7 +62,6 @@ import com.android.server.display.config.IdleScreenRefreshRateTimeout; import com.android.server.display.config.IdleScreenRefreshRateTimeoutLuxThresholdPoint; import com.android.server.display.config.IdleScreenRefreshRateTimeoutLuxThresholds; import com.android.server.display.config.IntegerArray; import com.android.server.display.config.LowBrightnessData; import com.android.server.display.config.LuxThrottling; import com.android.server.display.config.NitsMap; import com.android.server.display.config.NonNegativeFloatToFloatPoint; Loading Loading @@ -556,7 +556,7 @@ import javax.xml.datatype.DatatypeConfigurationException; * <majorVersion>2</majorVersion> * <minorVersion>0</minorVersion> * </usiVersion> * <lowBrightness enabled="true"> * <evenDimmer enabled="true"> * <transitionPoint>0.1</transitionPoint> * * <nits>0.2</nits> Loading @@ -573,7 +573,7 @@ import javax.xml.datatype.DatatypeConfigurationException; * <brightness>0.1</brightness> * <brightness>0.5</brightness> * <brightness>1.0</brightness> * </lowBrightness> * </evenDimmer> * <screenBrightnessCapForWearBedtimeMode>0.1</screenBrightnessCapForWearBedtimeMode> * <idleScreenRefreshRateTimeout> * <luxThresholds> Loading Loading @@ -894,9 +894,9 @@ public class DisplayDeviceConfig { @Nullable private HdrBrightnessData mHdrBrightnessData; // Null if low brightness mode is disabled - in config or by flag. // Null if even dimmer is disabled - in config or by flag. @Nullable public LowBrightnessData mLowBrightnessData; public EvenDimmerBrightnessData mEvenDimmerBrightnessData; /** * Maximum screen brightness setting when screen brightness capped in Wear Bedtime mode. Loading Loading @@ -1064,8 +1064,8 @@ public class DisplayDeviceConfig { * @return The brightness mapping nits array. */ public float[] getNits() { if (mLowBrightnessData != null) { return mLowBrightnessData.mNits; if (mEvenDimmerBrightnessData != null) { return mEvenDimmerBrightnessData.mNits; } return mNits; } Loading @@ -1077,8 +1077,8 @@ public class DisplayDeviceConfig { */ @VisibleForTesting public float[] getBacklight() { if (mLowBrightnessData != null) { return mLowBrightnessData.mBacklight; if (mEvenDimmerBrightnessData != null) { return mEvenDimmerBrightnessData.mBacklight; } return mBacklight; } Loading @@ -1091,8 +1091,8 @@ public class DisplayDeviceConfig { * @return backlight value on the HAL scale of 0-1 */ public float getBacklightFromBrightness(float brightness) { if (mLowBrightnessData != null) { return mLowBrightnessData.mBrightnessToBacklight.interpolate(brightness); if (mEvenDimmerBrightnessData != null) { return mEvenDimmerBrightnessData.mBrightnessToBacklight.interpolate(brightness); } return mBrightnessToBacklightSpline.interpolate(brightness); } Loading @@ -1104,30 +1104,19 @@ public class DisplayDeviceConfig { * @return brightness value from 0-1 framework scale */ public float getBrightnessFromBacklight(float backlight) { if (mLowBrightnessData != null) { return mLowBrightnessData.mBacklightToBrightness.interpolate(backlight); if (mEvenDimmerBrightnessData != null) { return mEvenDimmerBrightnessData.mBacklightToBrightness.interpolate(backlight); } return mBacklightToBrightnessSpline.interpolate(backlight); } /** * * @return low brightness mode transition point */ public float getLowBrightnessTransitionPoint() { if (mLowBrightnessData == null) { return PowerManager.BRIGHTNESS_MIN; } return mLowBrightnessData.mTransitionPoint; } /** * * @return HAL backlight mapping to framework brightness */ private Spline getBacklightToBrightnessSpline() { if (mLowBrightnessData != null) { return mLowBrightnessData.mBacklightToBrightness; if (mEvenDimmerBrightnessData != null) { return mEvenDimmerBrightnessData.mBacklightToBrightness; } return mBacklightToBrightnessSpline; } Loading @@ -1139,12 +1128,12 @@ public class DisplayDeviceConfig { * exits. */ public float getNitsFromBacklight(float backlight) { if (mLowBrightnessData != null) { if (mLowBrightnessData.mBacklightToNits == null) { if (mEvenDimmerBrightnessData != null) { if (mEvenDimmerBrightnessData.mBacklightToNits == null) { return INVALID_NITS; } backlight = Math.max(backlight, mBacklightMinimum); return mLowBrightnessData.mBacklightToNits.interpolate(backlight); return mEvenDimmerBrightnessData.mBacklightToNits.interpolate(backlight); } if (mBacklightToNitsSpline == null) { Loading @@ -1160,15 +1149,15 @@ public class DisplayDeviceConfig { * @return corresponding HAL backlight value */ public float getBacklightFromNits(float nits) { if (mLowBrightnessData != null) { return mLowBrightnessData.mNitsToBacklight.interpolate(nits); if (mEvenDimmerBrightnessData != null) { return mEvenDimmerBrightnessData.mNitsToBacklight.interpolate(nits); } return mNitsToBacklightSpline.interpolate(nits); } private Spline getNitsToBacklightSpline() { if (mLowBrightnessData != null) { return mLowBrightnessData.mNitsToBacklight; if (mEvenDimmerBrightnessData != null) { return mEvenDimmerBrightnessData.mNitsToBacklight; } return mNitsToBacklightSpline; } Loading @@ -1179,10 +1168,21 @@ public class DisplayDeviceConfig { * @return minimum allowed nits, given the lux. */ public float getMinNitsFromLux(float lux) { if (mLowBrightnessData == null) { if (mEvenDimmerBrightnessData == null) { return INVALID_NITS; } return mLowBrightnessData.mMinLuxToNits.interpolate(lux); return mEvenDimmerBrightnessData.mMinLuxToNits.interpolate(lux); } /** * * @return even dimmer mode transition point */ public float getEvenDimmerTransitionPoint() { if (mEvenDimmerBrightnessData == null) { return PowerManager.BRIGHTNESS_MIN; } return mEvenDimmerBrightnessData.mTransitionPoint; } /** Loading Loading @@ -1239,8 +1239,8 @@ public class DisplayDeviceConfig { * @return brightness array */ public float[] getBrightness() { if (mLowBrightnessData != null) { return mLowBrightnessData.mBrightness; if (mEvenDimmerBrightnessData != null) { return mEvenDimmerBrightnessData.mBrightness; } return mBrightness; } Loading Loading @@ -1928,11 +1928,11 @@ public class DisplayDeviceConfig { /** * * @return true if low brightness mode is enabled * @return true if even dimmer mode is enabled */ @VisibleForTesting public boolean getLbmEnabled() { return mLowBrightnessData != null; public boolean isEvenDimmerAvailable() { return mEvenDimmerBrightnessData != null; } /** Loading Loading @@ -2075,8 +2075,8 @@ public class DisplayDeviceConfig { + "mHdrBrightnessData= " + mHdrBrightnessData + "\n" + "mBrightnessCapForWearBedtimeMode= " + mBrightnessCapForWearBedtimeMode + "\n" + "mLowBrightnessData:" + (mLowBrightnessData != null ? mLowBrightnessData.toString() : "null") + "mEvenDimmerBrightnessData:" + (mEvenDimmerBrightnessData != null ? mEvenDimmerBrightnessData.toString() : "null") + "}"; } Loading Loading @@ -2128,7 +2128,7 @@ public class DisplayDeviceConfig { loadBrightnessDefaultFromDdcXml(config); loadBrightnessConstraintsFromConfigXml(); if (mFlags.isEvenDimmerEnabled()) { mLowBrightnessData = LowBrightnessData.loadConfig(config); mEvenDimmerBrightnessData = EvenDimmerBrightnessData.loadConfig(config); } loadBrightnessMap(config); loadThermalThrottlingConfig(config); Loading Loading @@ -2923,7 +2923,7 @@ public class DisplayDeviceConfig { private void createBacklightConversionSplines() { // Create original brightness splines - not using low brightness mode arrays - this is // Create original brightness splines - not using even dimmer mode arrays - this is // so that we can continue to log the original brightness splines. mBrightness = new float[mBacklight.length]; Loading
services/core/java/com/android/server/display/LocalDisplayAdapter.java +10 −2 Original line number Diff line number Diff line Loading @@ -53,6 +53,7 @@ import com.android.internal.annotations.VisibleForTesting; import com.android.internal.display.BrightnessSynchronizer; import com.android.internal.util.function.pooled.PooledLambda; import com.android.server.LocalServices; import com.android.server.display.color.ColorDisplayService; import com.android.server.display.feature.DisplayManagerFlags; import com.android.server.display.mode.DisplayModeDirector; import com.android.server.display.notifications.DisplayNotificationManager; Loading Loading @@ -100,6 +101,7 @@ final class LocalDisplayAdapter extends DisplayAdapter { private Context mOverlayContext; private int mEvenDimmerStrength = -1; private ColorDisplayService.ColorDisplayServiceInternal mCdsi; // Called with SyncRoot lock held. LocalDisplayAdapter(DisplayManagerService.SyncRoot syncRoot, Context context, Loading Loading @@ -1000,9 +1002,15 @@ final class LocalDisplayAdapter extends DisplayAdapter { || strength <= 1) { mEvenDimmerStrength = strength; } boolean enabled = mEvenDimmerStrength > 0.0f; // TODO: use `enabled` and `mRbcStrength` to set color matrices here // TODO: boolean enabled = mEvenDimmerStrength > 0.0f; if (mCdsi == null) { mCdsi = LocalServices.getService( ColorDisplayService.ColorDisplayServiceInternal.class); } if (mCdsi != null) { mCdsi.applyEvenDimmerColorChanges(enabled, strength); } } }; } Loading
services/core/java/com/android/server/display/brightness/clamper/BrightnessLowLuxModifier.java +1 −1 Original line number Diff line number Diff line Loading @@ -106,7 +106,7 @@ public class BrightnessLowLuxModifier extends BrightnessModifier { ? BrightnessReason.MODIFIER_MIN_USER_SET_LOWER_BOUND : BrightnessReason.MODIFIER_MIN_LUX; } else { minBrightnessAllowed = mDisplayDeviceConfig.getLowBrightnessTransitionPoint(); minBrightnessAllowed = mDisplayDeviceConfig.getEvenDimmerTransitionPoint(); reason = 0; } Loading
services/core/java/com/android/server/display/color/ColorDisplayService.java +9 −0 Original line number Diff line number Diff line Loading @@ -1632,6 +1632,15 @@ public final class ColorDisplayService extends SystemService { return mAppSaturationController .addColorTransformController(packageName, userId, controller); } /** * Applies tint changes for even dimmer feature. */ public void applyEvenDimmerColorChanges(boolean enabled, int strength) { mReduceBrightColorsTintController.setActivated(enabled); mReduceBrightColorsTintController.setMatrix(strength); mHandler.sendEmptyMessage(MSG_APPLY_REDUCE_BRIGHT_COLORS); } } /** Loading