Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 4a401d43 authored by Fiona Campbell's avatar Fiona Campbell
Browse files

Disable even dimmer setting conditionally

- Disable even dimmer settings option if autobrightness is not enabled
  on the device

Bug:179428400
Test: manual

Change-Id: I8f7add839022fc7c27694fd8daa83a608cf2736a
parent 14b1831f
Loading
Loading
Loading
Loading
+10 −1
Original line number Diff line number Diff line
@@ -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
+15 −0
Original line number Diff line number Diff line
@@ -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);
    }
}