diff options
author | 2025-03-03 07:18:59 -0800 | |
---|---|---|
committer | 2025-03-03 07:18:59 -0800 | |
commit | 1866ca8b065bbfd90a5ea9157ba455f67536b96e (patch) | |
tree | 64ed55ae7021f2048e9d7bbb75cdcef487a58374 | |
parent | 330d157f025eb8def998692bd95c1545478f0f87 (diff) | |
parent | bf1d713a546c27b3ac9ae4313059ae75cffebbd3 (diff) |
Merge "Remove EvenDimmer Toggle" into main
8 files changed, 6 insertions, 241 deletions
diff --git a/core/java/android/provider/Settings.java b/core/java/android/provider/Settings.java index 1210790668de..60e57b588be0 100644 --- a/core/java/android/provider/Settings.java +++ b/core/java/android/provider/Settings.java @@ -9465,24 +9465,6 @@ public final class Settings { "reduce_bright_colors_persist_across_reboots"; /** - * Setting that specifies whether Even Dimmer - a feature that allows the brightness - * slider to go below what the display can conventionally do, should be enabled. - * - * @hide - */ - public static final String EVEN_DIMMER_ACTIVATED = - "even_dimmer_activated"; - - /** - * Setting that specifies which nits level Even Dimmer should allow the screen brightness - * to go down to. - * - * @hide - */ - public static final String EVEN_DIMMER_MIN_NITS = - "even_dimmer_min_nits"; - - /** * Setting that holds EM_VALUE (proprietary) * * @hide diff --git a/core/proto/android/providers/settings/secure.proto b/core/proto/android/providers/settings/secure.proto index 8de77469d170..ac4bac6d206e 100644 --- a/core/proto/android/providers/settings/secure.proto +++ b/core/proto/android/providers/settings/secure.proto @@ -295,13 +295,6 @@ message SecureSettingsProto { optional SettingProto enhanced_voice_privacy_enabled = 23 [ (android.privacy).dest = DEST_AUTOMATIC ]; - message EvenDimmer { - optional SettingProto even_dimmer_activated = 1 [ (android.privacy).dest = DEST_AUTOMATIC ]; - optional SettingProto even_dimmer_min_nits = 2 [ (android.privacy).dest = DEST_AUTOMATIC ]; - } - - optional EvenDimmer even_dimmer = 98; - optional SettingProto font_weight_adjustment = 85 [ (android.privacy).dest = DEST_AUTOMATIC ]; message Gesture { diff --git a/packages/SettingsProvider/src/android/provider/settings/backup/SecureSettings.java b/packages/SettingsProvider/src/android/provider/settings/backup/SecureSettings.java index 3c70fc15485a..c0105298899b 100644 --- a/packages/SettingsProvider/src/android/provider/settings/backup/SecureSettings.java +++ b/packages/SettingsProvider/src/android/provider/settings/backup/SecureSettings.java @@ -271,8 +271,6 @@ public class SecureSettings { Settings.Secure.DEFAULT_NOTE_TASK_PROFILE, Settings.Secure.CREDENTIAL_SERVICE, Settings.Secure.CREDENTIAL_SERVICE_PRIMARY, - Settings.Secure.EVEN_DIMMER_ACTIVATED, - Settings.Secure.EVEN_DIMMER_MIN_NITS, Settings.Secure.STYLUS_POINTER_ICON_ENABLED, Settings.Secure.CAMERA_EXTENSIONS_FALLBACK, Settings.Secure.VISUAL_QUERY_ACCESSIBILITY_DETECTION_ENABLED, diff --git a/packages/SettingsProvider/src/android/provider/settings/validators/SecureSettingsValidators.java b/packages/SettingsProvider/src/android/provider/settings/validators/SecureSettingsValidators.java index c09e45ed81a6..0ffdf53f2036 100644 --- a/packages/SettingsProvider/src/android/provider/settings/validators/SecureSettingsValidators.java +++ b/packages/SettingsProvider/src/android/provider/settings/validators/SecureSettingsValidators.java @@ -114,9 +114,6 @@ public class SecureSettingsValidators { VALIDATORS.put(Secure.FONT_WEIGHT_ADJUSTMENT, ANY_INTEGER_VALIDATOR); VALIDATORS.put(Secure.REDUCE_BRIGHT_COLORS_LEVEL, PERCENTAGE_INTEGER_VALIDATOR); VALIDATORS.put(Secure.REDUCE_BRIGHT_COLORS_PERSIST_ACROSS_REBOOTS, BOOLEAN_VALIDATOR); - VALIDATORS.put(Secure.EVEN_DIMMER_ACTIVATED, BOOLEAN_VALIDATOR); - VALIDATORS.put(Secure.EVEN_DIMMER_MIN_NITS, - new InclusiveFloatRangeValidator(0.0f, Float.MAX_VALUE)); VALIDATORS.put(Secure.TTS_DEFAULT_RATE, NON_NEGATIVE_INTEGER_VALIDATOR); VALIDATORS.put(Secure.TTS_DEFAULT_PITCH, NON_NEGATIVE_INTEGER_VALIDATOR); VALIDATORS.put(Secure.TTS_DEFAULT_SYNTH, PACKAGE_NAME_VALIDATOR); diff --git a/packages/SettingsProvider/src/com/android/providers/settings/SettingsProtoDumpUtil.java b/packages/SettingsProvider/src/com/android/providers/settings/SettingsProtoDumpUtil.java index 167674a451b3..e07832eea65e 100644 --- a/packages/SettingsProvider/src/com/android/providers/settings/SettingsProtoDumpUtil.java +++ b/packages/SettingsProvider/src/com/android/providers/settings/SettingsProtoDumpUtil.java @@ -2189,15 +2189,6 @@ class SettingsProtoDumpUtil { Settings.Secure.ENHANCED_VOICE_PRIVACY_ENABLED, SecureSettingsProto.ENHANCED_VOICE_PRIVACY_ENABLED); - final long evenDimmerToken = p.start(SecureSettingsProto.EVEN_DIMMER); - dumpSetting(s, p, - Settings.Secure.EVEN_DIMMER_ACTIVATED, - SecureSettingsProto.EvenDimmer.EVEN_DIMMER_ACTIVATED); - dumpSetting(s, p, - Settings.Secure.EVEN_DIMMER_MIN_NITS, - SecureSettingsProto.EvenDimmer.EVEN_DIMMER_MIN_NITS); - p.end(evenDimmerToken); - dumpSetting(s, p, Settings.Secure.EM_VALUE, SecureSettingsProto.Accessibility.EM_VALUE); diff --git a/services/core/java/com/android/server/display/brightness/BrightnessReason.java b/services/core/java/com/android/server/display/brightness/BrightnessReason.java index a4804e1887fe..d4b9a6ce058b 100644 --- a/services/core/java/com/android/server/display/brightness/BrightnessReason.java +++ b/services/core/java/com/android/server/display/brightness/BrightnessReason.java @@ -49,11 +49,9 @@ public final class BrightnessReason { public static final int MODIFIER_HDR = 0x4; public static final int MODIFIER_THROTTLED = 0x8; public static final int MODIFIER_MIN_LUX = 0x10; - public static final int MODIFIER_MIN_USER_SET_LOWER_BOUND = 0x20; - public static final int MODIFIER_STYLUS_UNDER_USE = 0x40; + public static final int MODIFIER_STYLUS_UNDER_USE = 0x20; public static final int MODIFIER_MASK = MODIFIER_DIMMED | MODIFIER_LOW_POWER | MODIFIER_HDR - | MODIFIER_THROTTLED | MODIFIER_MIN_LUX | MODIFIER_MIN_USER_SET_LOWER_BOUND - | MODIFIER_STYLUS_UNDER_USE; + | MODIFIER_THROTTLED | MODIFIER_MIN_LUX | MODIFIER_STYLUS_UNDER_USE; // ADJUSTMENT_* // These things can happen at any point, even if the main brightness reason doesn't @@ -157,9 +155,6 @@ public final class BrightnessReason { if ((mModifier & MODIFIER_MIN_LUX) != 0) { sb.append(" lux_lower_bound"); } - if ((mModifier & MODIFIER_MIN_USER_SET_LOWER_BOUND) != 0) { - sb.append(" user_min_pref"); - } if ((mModifier & MODIFIER_STYLUS_UNDER_USE) != 0) { sb.append(" stylus_under_use"); } diff --git a/services/core/java/com/android/server/display/brightness/clamper/BrightnessLowLuxModifier.java b/services/core/java/com/android/server/display/brightness/clamper/BrightnessLowLuxModifier.java index c3596c3e77fe..72cb31d8d1bb 100644 --- a/services/core/java/com/android/server/display/brightness/clamper/BrightnessLowLuxModifier.java +++ b/services/core/java/com/android/server/display/brightness/clamper/BrightnessLowLuxModifier.java @@ -19,12 +19,8 @@ package com.android.server.display.brightness.clamper; import android.content.ContentResolver; import android.content.Context; -import android.database.ContentObserver; import android.hardware.display.DisplayManagerInternal; -import android.net.Uri; import android.os.Handler; -import android.os.UserHandle; -import android.provider.Settings; import android.util.Slog; import com.android.internal.annotations.VisibleForTesting; @@ -49,7 +45,6 @@ public class BrightnessLowLuxModifier extends BrightnessModifier implements private static final String TAG = "BrightnessLowLuxModifier"; private static final boolean DEBUG = DebugUtils.isDebuggable(TAG); private static final float MIN_NITS_DEFAULT = 0.2f; - private final SettingsObserver mSettingsObserver; private final ContentResolver mContentResolver; private final Handler mHandler; private final BrightnessClamperController.ClamperChangeListener mChangeListener; @@ -69,7 +64,6 @@ public class BrightnessLowLuxModifier extends BrightnessModifier implements mChangeListener = listener; mHandler = handler; mContentResolver = context.getContentResolver(); - mSettingsObserver = new SettingsObserver(mHandler); mDisplayDeviceConfig = displayDeviceConfig; mHandler.post(() -> { start(); @@ -82,12 +76,7 @@ public class BrightnessLowLuxModifier extends BrightnessModifier implements */ @VisibleForTesting public void recalculateLowerBound() { - float settingNitsLowerBound = Settings.Secure.getFloatForUser( - mContentResolver, Settings.Secure.EVEN_DIMMER_MIN_NITS, - /* def= */ MIN_NITS_DEFAULT, UserHandle.USER_CURRENT); - - boolean isActive = isSettingEnabled() - && mAmbientLux != BrightnessMappingStrategy.INVALID_LUX; + boolean isActive = mAmbientLux != BrightnessMappingStrategy.INVALID_LUX; final int reason; float minNitsAllowed = -1f; // undefined, if setting is off. @@ -95,12 +84,9 @@ public class BrightnessLowLuxModifier extends BrightnessModifier implements if (isActive) { float luxBasedNitsLowerBound = mDisplayDeviceConfig.getMinNitsFromLux(mAmbientLux); - minNitsAllowed = Math.max(settingNitsLowerBound, - luxBasedNitsLowerBound); + minNitsAllowed = Math.max(MIN_NITS_DEFAULT, luxBasedNitsLowerBound); minBrightnessAllowed = getBrightnessFromNits(minNitsAllowed); - reason = settingNitsLowerBound > luxBasedNitsLowerBound - ? BrightnessReason.MODIFIER_MIN_USER_SET_LOWER_BOUND - : BrightnessReason.MODIFIER_MIN_LUX; + reason = BrightnessReason.MODIFIER_MIN_LUX; } else { minBrightnessAllowed = mDisplayDeviceConfig.getEvenDimmerTransitionPoint(); reason = 0; @@ -169,7 +155,6 @@ public class BrightnessLowLuxModifier extends BrightnessModifier implements @Override public void apply(DisplayManagerInternal.DisplayPowerRequest request, DisplayBrightnessState.Builder stateBuilder) { - stateBuilder.setMinBrightness(mBrightnessLowerBound); float boundedBrightness = Math.max(mBrightnessLowerBound, stateBuilder.getBrightness()); stateBuilder.setBrightness(boundedBrightness); @@ -181,12 +166,11 @@ public class BrightnessLowLuxModifier extends BrightnessModifier implements @Override public void stop() { - mContentResolver.unregisterContentObserver(mSettingsObserver); } @Override public boolean shouldListenToLightSensor() { - return isSettingEnabled(); + return true; } @Override @@ -204,37 +188,8 @@ public class BrightnessLowLuxModifier extends BrightnessModifier implements pw.println(" mMinNitsAllowed=" + mMinNitsAllowed); } - /** - * Defaults to true, on devices where setting is unset. - * - * @return if setting indicates feature is enabled - */ - private boolean isSettingEnabled() { - return Settings.Secure.getFloatForUser(mContentResolver, - Settings.Secure.EVEN_DIMMER_ACTIVATED, - /* def= */ 1.0f, UserHandle.USER_CURRENT) == 1.0f; - } - private float getBrightnessFromNits(float nits) { return mDisplayDeviceConfig.getBrightnessFromBacklight( mDisplayDeviceConfig.getBacklightFromNits(nits)); } - - private final class SettingsObserver extends ContentObserver { - - SettingsObserver(Handler handler) { - super(handler); - mContentResolver.registerContentObserver( - Settings.Secure.getUriFor(Settings.Secure.EVEN_DIMMER_MIN_NITS), - false, this, UserHandle.USER_ALL); - mContentResolver.registerContentObserver( - Settings.Secure.getUriFor(Settings.Secure.EVEN_DIMMER_ACTIVATED), - false, this, UserHandle.USER_ALL); - } - - @Override - public void onChange(boolean selfChange, Uri uri) { - recalculateLowerBound(); - } - } } diff --git a/services/tests/displayservicetests/src/com/android/server/display/brightness/clamper/BrightnessLowLuxModifierTest.kt b/services/tests/displayservicetests/src/com/android/server/display/brightness/clamper/BrightnessLowLuxModifierTest.kt index 6929690baaf8..d7c047768c1e 100644 --- a/services/tests/displayservicetests/src/com/android/server/display/brightness/clamper/BrightnessLowLuxModifierTest.kt +++ b/services/tests/displayservicetests/src/com/android/server/display/brightness/clamper/BrightnessLowLuxModifierTest.kt @@ -17,7 +17,6 @@ package com.android.server.display.brightness.clamper import android.os.UserHandle import android.platform.test.annotations.RequiresFlagsEnabled -import android.provider.Settings import android.testing.TestableContext import androidx.test.platform.app.InstrumentationRegistry import com.android.server.display.DisplayDeviceConfig @@ -46,8 +45,6 @@ class BrightnessLowLuxModifierTest { private var mockDisplayDeviceConfig = mock<DisplayDeviceConfig>() private val LOW_LUX_BRIGHTNESS = 0.1f - private val TRANSITION_POINT = 0.25f - private val NORMAL_RANGE_BRIGHTNESS = 0.3f @Before fun setUp() { @@ -73,127 +70,21 @@ class BrightnessLowLuxModifierTest { whenever(mockDisplayDeviceConfig.getBrightnessFromBacklight(/* backlight = */ 0.15f)) .thenReturn(0.24f) - // values above transition point (normal range) - // nits: 10 -> backlight 0.2 -> brightness -> 0.3 - whenever(mockDisplayDeviceConfig.getBacklightFromNits(/* nits= */ 10f)) - .thenReturn(0.2f) - whenever(mockDisplayDeviceConfig.getBrightnessFromBacklight(/* backlight = */ 0.2f)) - .thenReturn(NORMAL_RANGE_BRIGHTNESS) - // min nits when lux of 400 whenever(mockDisplayDeviceConfig.getMinNitsFromLux(/* lux= */ 400f)) .thenReturn(1.0f) - - whenever(mockDisplayDeviceConfig.evenDimmerTransitionPoint).thenReturn(TRANSITION_POINT) - - testHandler.flush() - } - - @Test - fun testSettingOffDisablesModifier() { - // test transition point ensures brightness doesn't drop when setting is off. - Settings.Secure.putIntForUser(context.contentResolver, - Settings.Secure.EVEN_DIMMER_ACTIVATED, 0, USER_ID) - modifier.recalculateLowerBound() - testHandler.flush() - assertThat(modifier.brightnessLowerBound).isEqualTo(TRANSITION_POINT) - assertThat(modifier.brightnessReason).isEqualTo(0) // no reason - ie off - modifier.setAmbientLux(3000f) - testHandler.flush() - assertThat(modifier.isActive).isFalse() - assertThat(modifier.brightnessLowerBound).isEqualTo(TRANSITION_POINT) - assertThat(modifier.brightnessReason).isEqualTo(0) // no reason - ie off } @Test @RequiresFlagsEnabled(Flags.FLAG_EVEN_DIMMER) fun testLuxRestrictsBrightnessRange() { // test that high lux prevents low brightness range. - Settings.Secure.putIntForUser(context.contentResolver, - Settings.Secure.EVEN_DIMMER_ACTIVATED, 1, USER_ID) - Settings.Secure.putFloatForUser(context.contentResolver, - Settings.Secure.EVEN_DIMMER_MIN_NITS, 0.1f, USER_ID) - modifier.setAmbientLux(400f) - - testHandler.flush() - - assertThat(modifier.isActive).isTrue() - // Test restriction from lux setting - assertThat(modifier.brightnessReason).isEqualTo(BrightnessReason.MODIFIER_MIN_LUX) - assertThat(modifier.brightnessLowerBound).isEqualTo(LOW_LUX_BRIGHTNESS) - } - - @Test - @RequiresFlagsEnabled(Flags.FLAG_EVEN_DIMMER) - fun testUserRestrictsBrightnessRange() { - // test that user minimum nits setting prevents low brightness range. - Settings.Secure.putIntForUser(context.contentResolver, - Settings.Secure.EVEN_DIMMER_ACTIVATED, 1, USER_ID) - Settings.Secure.putFloatForUser(context.contentResolver, - Settings.Secure.EVEN_DIMMER_MIN_NITS, 10.0f, USER_ID) - modifier.recalculateLowerBound() - testHandler.flush() - - // Test restriction from user setting - assertThat(modifier.isActive).isTrue() - assertThat(modifier.brightnessReason) - .isEqualTo(BrightnessReason.MODIFIER_MIN_USER_SET_LOWER_BOUND) - assertThat(modifier.brightnessLowerBound).isEqualTo(NORMAL_RANGE_BRIGHTNESS) - } - - @Test - @RequiresFlagsEnabled(Flags.FLAG_EVEN_DIMMER) - fun testOnToOff() { - // test that high lux prevents low brightness range. - Settings.Secure.putIntForUser(context.contentResolver, - Settings.Secure.EVEN_DIMMER_ACTIVATED, 1, USER_ID) // on - Settings.Secure.putFloatForUser(context.contentResolver, - Settings.Secure.EVEN_DIMMER_MIN_NITS, 1.0f, USER_ID) - modifier.setAmbientLux(400f) - - testHandler.flush() - - assertThat(modifier.isActive).isTrue() - // Test restriction from lux setting - assertThat(modifier.brightnessReason).isEqualTo(BrightnessReason.MODIFIER_MIN_LUX) - assertThat(modifier.brightnessLowerBound).isEqualTo(LOW_LUX_BRIGHTNESS) - - Settings.Secure.putIntForUser(context.contentResolver, - Settings.Secure.EVEN_DIMMER_ACTIVATED, 0, USER_ID) // off - - modifier.recalculateLowerBound() - testHandler.flush() - - assertThat(modifier.isActive).isFalse() - assertThat(modifier.brightnessLowerBound).isEqualTo(TRANSITION_POINT) - assertThat(modifier.brightnessReason).isEqualTo(0) // no reason - ie off - } - - @Test - @RequiresFlagsEnabled(Flags.FLAG_EVEN_DIMMER) - fun testOffToOn() { - // test that high lux prevents low brightness range. - Settings.Secure.putIntForUser(context.contentResolver, - Settings.Secure.EVEN_DIMMER_ACTIVATED, 0, USER_ID) // off - Settings.Secure.putFloatForUser(context.contentResolver, - Settings.Secure.EVEN_DIMMER_MIN_NITS, 1.0f, USER_ID) modifier.setAmbientLux(400f) testHandler.flush() - assertThat(modifier.isActive).isFalse() - assertThat(modifier.brightnessLowerBound).isEqualTo(TRANSITION_POINT) - assertThat(modifier.brightnessReason).isEqualTo(0) // no reason - ie off - - - - Settings.Secure.putIntForUser(context.contentResolver, - Settings.Secure.EVEN_DIMMER_ACTIVATED, 1, USER_ID) // on - modifier.recalculateLowerBound() - testHandler.flush() - assertThat(modifier.isActive).isTrue() // Test restriction from lux setting assertThat(modifier.brightnessReason).isEqualTo(BrightnessReason.MODIFIER_MIN_LUX) @@ -204,11 +95,6 @@ class BrightnessLowLuxModifierTest { @RequiresFlagsEnabled(Flags.FLAG_EVEN_DIMMER) fun testEnabledEvenWhenAutobrightnessIsOff() { // test that high lux prevents low brightness range. - Settings.Secure.putIntForUser(context.contentResolver, - Settings.Secure.EVEN_DIMMER_ACTIVATED, 1, USER_ID) // on - Settings.Secure.putFloatForUser(context.contentResolver, - Settings.Secure.EVEN_DIMMER_MIN_NITS, 1.0f, USER_ID) - modifier.setAmbientLux(400f) testHandler.flush() @@ -225,37 +111,5 @@ class BrightnessLowLuxModifierTest { assertThat(modifier.brightnessReason).isEqualTo(BrightnessReason.MODIFIER_MIN_LUX) assertThat(modifier.brightnessLowerBound).isEqualTo(LOW_LUX_BRIGHTNESS) } - - @Test - @RequiresFlagsEnabled(Flags.FLAG_EVEN_DIMMER) - fun testUserSwitch() { - // nits: 0.5 -> backlight 0.01 -> brightness -> 0.05 - whenever(mockDisplayDeviceConfig.getBacklightFromNits(/* nits= */ 0.5f)) - .thenReturn(0.01f) - whenever(mockDisplayDeviceConfig.getBrightnessFromBacklight(/* backlight = */ 0.01f)) - .thenReturn(0.05f) - - Settings.Secure.putIntForUser(context.contentResolver, - Settings.Secure.EVEN_DIMMER_ACTIVATED, 0, USER_ID) // off - Settings.Secure.putFloatForUser(context.contentResolver, - Settings.Secure.EVEN_DIMMER_MIN_NITS, 1.0f, USER_ID) - - modifier.recalculateLowerBound() - - assertThat(modifier.isActive).isFalse() - assertThat(modifier.brightnessLowerBound).isEqualTo(TRANSITION_POINT) - assertThat(modifier.brightnessReason).isEqualTo(0) // no reason - i.e. off - - Settings.Secure.putIntForUser(context.contentResolver, - Settings.Secure.EVEN_DIMMER_ACTIVATED, 1, USER_ID) // on - Settings.Secure.putFloatForUser(context.contentResolver, - Settings.Secure.EVEN_DIMMER_MIN_NITS, 0.5f, USER_ID) - modifier.onSwitchUser() - - assertThat(modifier.isActive).isTrue() - assertThat(modifier.brightnessReason).isEqualTo( - BrightnessReason.MODIFIER_MIN_USER_SET_LOWER_BOUND) - assertThat(modifier.brightnessLowerBound).isEqualTo(0.05f) - } } |