diff --git a/src/com/android/settings/display/EvenDimmerPreferenceController.java b/src/com/android/settings/display/EvenDimmerPreferenceController.java index b86c8457dc8..9f239b2e1ad 100644 --- a/src/com/android/settings/display/EvenDimmerPreferenceController.java +++ b/src/com/android/settings/display/EvenDimmerPreferenceController.java @@ -47,7 +47,16 @@ public class EvenDimmerPreferenceController extends TogglePreferenceController { // enable based on flag and config.xml final boolean enabledInConfig = mResources.getBoolean( com.android.internal.R.bool.config_evenDimmerEnabled); - return (Flags.evenDimmer() && enabledInConfig) ? AVAILABLE : UNSUPPORTED_ON_DEVICE; + + if (Flags.evenDimmer() && enabledInConfig) { + return Settings.System.getInt(mContext.getContentResolver(), + Settings.System.SCREEN_BRIGHTNESS_MODE, + Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL) + == Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC ? AVAILABLE + : DISABLED_DEPENDENT_SETTING; + } else { + return UNSUPPORTED_ON_DEVICE; + } } @Override diff --git a/tests/robotests/src/com/android/settings/display/EvenDimmerPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/display/EvenDimmerPreferenceControllerTest.java index a3cf1511b12..af84ac06c5a 100644 --- a/tests/robotests/src/com/android/settings/display/EvenDimmerPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/display/EvenDimmerPreferenceControllerTest.java @@ -18,6 +18,7 @@ package com.android.settings.display; import static com.android.settings.core.BasePreferenceController.AVAILABLE; +import static com.android.settings.core.BasePreferenceController.DISABLED_DEPENDENT_SETTING; import static com.android.settings.core.BasePreferenceController.UNSUPPORTED_ON_DEVICE; import static com.google.common.truth.Truth.assertThat; @@ -111,4 +112,18 @@ public class EvenDimmerPreferenceControllerTest { assertThat(Settings.Secure.getFloat(mContext.getContentResolver(), Settings.Secure.EVEN_DIMMER_ACTIVATED)).isEqualTo(0.0f); // false } + + @Test + @RequiresFlagsEnabled(Flags.FLAG_EVEN_DIMMER) + public void testDisabledIfAutobrightnessIsOff() { + // Autobrightness off + Settings.System.putInt(mContext.getContentResolver(), + Settings.System.SCREEN_BRIGHTNESS_MODE, + Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL); + // Try turn controller on + mController.setChecked(true); + + assertThat(mController.getAvailabilityStatus()).isEqualTo( + DISABLED_DEPENDENT_SETTING); + } }