Loading src/com/android/settings/display/AutoBrightnessPreferenceControllerForSetupWizard.java +25 −1 Original line number Diff line number Diff line Loading @@ -19,8 +19,12 @@ package com.android.settings.display; import android.content.Context; import androidx.annotation.NonNull; import androidx.preference.Preference; import androidx.preference.PreferenceScreen; import com.android.settings.accessibility.Flags; import com.android.settingslib.RestrictedPreferenceHelper; import com.android.settingslib.RestrictedPreferenceHelperProvider; /** * The top-level preference controller that updates the adaptive brightness in the SetupWizard. Loading @@ -28,15 +32,35 @@ import com.android.settings.accessibility.Flags; public class AutoBrightnessPreferenceControllerForSetupWizard extends AutoBrightnessPreferenceController { private RestrictedPreferenceHelper mRestrictedPreferenceHelper; public AutoBrightnessPreferenceControllerForSetupWizard(@NonNull Context context, @NonNull String key) { super(context, key); } private boolean isRestricted() { if (mRestrictedPreferenceHelper == null) { return false; } return mRestrictedPreferenceHelper.isDisabledByAdmin() || mRestrictedPreferenceHelper.isDisabledByEcm(); } @Override public void displayPreference(PreferenceScreen screen) { super.displayPreference(screen); Preference preference = screen.findPreference(getPreferenceKey()); if (preference instanceof RestrictedPreferenceHelperProvider helperProvider) { mRestrictedPreferenceHelper = helperProvider.getRestrictedPreferenceHelper(); preference.setVisible(!isRestricted()); } } @Override @AvailabilityStatus public int getAvailabilityStatus() { if (!Flags.addBrightnessSettingsInSuw()) { if (!Flags.addBrightnessSettingsInSuw() || isRestricted()) { return CONDITIONALLY_UNAVAILABLE; } return super.getAvailabilityStatus(); Loading src/com/android/settings/display/BrightnessLevelPreferenceControllerForSetupWizard.java +25 −1 Original line number Diff line number Diff line Loading @@ -20,8 +20,12 @@ import android.content.Context; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.preference.Preference; import androidx.preference.PreferenceScreen; import com.android.settings.accessibility.Flags; import com.android.settingslib.RestrictedPreferenceHelper; import com.android.settingslib.RestrictedPreferenceHelperProvider; import com.android.settingslib.core.lifecycle.Lifecycle; /** Loading @@ -31,15 +35,35 @@ import com.android.settingslib.core.lifecycle.Lifecycle; public class BrightnessLevelPreferenceControllerForSetupWizard extends BrightnessLevelPreferenceController { private RestrictedPreferenceHelper mRestrictedPreferenceHelper; public BrightnessLevelPreferenceControllerForSetupWizard(@NonNull Context context, @Nullable Lifecycle lifecycle) { super(context, lifecycle); } private boolean isRestricted() { if (mRestrictedPreferenceHelper == null) { return false; } return mRestrictedPreferenceHelper.isDisabledByAdmin() || mRestrictedPreferenceHelper.isDisabledByEcm(); } @Override public void displayPreference(PreferenceScreen screen) { super.displayPreference(screen); Preference preference = screen.findPreference(getPreferenceKey()); if (preference instanceof RestrictedPreferenceHelperProvider helperProvider) { mRestrictedPreferenceHelper = helperProvider.getRestrictedPreferenceHelper(); preference.setVisible(!isRestricted()); } } @Override @AvailabilityStatus public int getAvailabilityStatus() { if (!Flags.addBrightnessSettingsInSuw()) { if (!Flags.addBrightnessSettingsInSuw() || isRestricted()) { return CONDITIONALLY_UNAVAILABLE; } return super.getAvailabilityStatus(); Loading tests/robotests/src/com/android/settings/display/AutoBrightnessPreferenceControllerForSetupWizardTest.java +63 −10 Original line number Diff line number Diff line Loading @@ -16,19 +16,28 @@ package com.android.settings.display; import static com.android.settings.core.BasePreferenceController.AVAILABLE_UNSEARCHABLE; import static com.android.settings.core.BasePreferenceController.CONDITIONALLY_UNAVAILABLE; import static com.android.settings.core.BasePreferenceController.UNSUPPORTED_ON_DEVICE; import static com.google.common.truth.Truth.assertThat; import static org.mockito.Mockito.mock; import android.content.Context; import android.platform.test.annotations.DisableFlags; import android.platform.test.annotations.EnableFlags; import android.platform.test.flag.junit.SetFlagsRule; import androidx.preference.Preference; import androidx.preference.PreferenceManager; import androidx.preference.PreferenceScreen; import com.android.settings.accessibility.Flags; import com.android.settings.testutils.shadow.SettingsShadowResources; import com.android.settingslib.RestrictedLockUtils; import com.android.settingslib.RestrictedSwitchPreference; import org.junit.Before; import org.junit.Rule; Loading Loading @@ -58,35 +67,79 @@ public class AutoBrightnessPreferenceControllerForSetupWizardTest { public void setUp() { MockitoAnnotations.initMocks(this); mContext = RuntimeEnvironment.application; mController = new AutoBrightnessPreferenceControllerForSetupWizard(mContext, PREFERENCE_KEY); } @Test @EnableFlags(Flags.FLAG_ADD_BRIGHTNESS_SETTINGS_IN_SUW) public void getAvailabilityStatus_configTrueAndFlagOn_shouldReturnAvailableUnsearchable() { SettingsShadowResources.overrideResource( com.android.internal.R.bool.config_automatic_brightness_available, true); public void displayPreference_flagOn_preferenceVisibleTrue() { Preference preference = displayPreference(/* configAvailable= */ true, /* restricted= */ false); assertThat(preference.isVisible()).isTrue(); } @Test @EnableFlags(Flags.FLAG_ADD_BRIGHTNESS_SETTINGS_IN_SUW) public void displayPreference_flagOnAndRestricted_preferenceVisibleFalse() { Preference preference = displayPreference(/* configAvailable= */ true, /* restricted= */ true); assertThat(preference.isVisible()).isFalse(); } @Test @EnableFlags(Flags.FLAG_ADD_BRIGHTNESS_SETTINGS_IN_SUW) public void getAvailabilityStatus_configTrueAndFlagOn_availableUnsearchable() { displayPreference(/* configAvailable= */ true, /* restricted= */ false); assertThat(mController.getAvailabilityStatus()).isEqualTo(AVAILABLE_UNSEARCHABLE); } @Test @EnableFlags(Flags.FLAG_ADD_BRIGHTNESS_SETTINGS_IN_SUW) public void getAvailabilityStatus_configFalseSetAndFlagOn_shouldReturnUnsupportedOnDevice() { SettingsShadowResources.overrideResource( com.android.internal.R.bool.config_automatic_brightness_available, false); public void getAvailabilityStatus_configTrueAndFlagOnAndRestricted_conditionallyUnavailable() { displayPreference(/* configAvailable= */ true, /* restricted= */ true); assertThat(mController.getAvailabilityStatus()).isEqualTo(CONDITIONALLY_UNAVAILABLE); } @Test @EnableFlags(Flags.FLAG_ADD_BRIGHTNESS_SETTINGS_IN_SUW) public void getAvailabilityStatus_configFalseAndFlagOn_unsupportedOnDevice() { displayPreference(/* configAvailable= */ false, /* restricted= */ false); assertThat(mController.getAvailabilityStatus()).isEqualTo(UNSUPPORTED_ON_DEVICE); } @Test @DisableFlags(Flags.FLAG_ADD_BRIGHTNESS_SETTINGS_IN_SUW) public void getAvailabilityStatus_flagOff_shouldReturnConditionallyUnavailable() { SettingsShadowResources.overrideResource( com.android.internal.R.bool.config_automatic_brightness_available, true); @EnableFlags(Flags.FLAG_ADD_BRIGHTNESS_SETTINGS_IN_SUW) public void getAvailabilityStatus_configFalseAndFlagOnAndRestricted_conditionallyUnavailable() { displayPreference(/* configAvailable= */ false, /* restricted= */ true); assertThat(mController.getAvailabilityStatus()).isEqualTo(CONDITIONALLY_UNAVAILABLE); } @Test @DisableFlags(Flags.FLAG_ADD_BRIGHTNESS_SETTINGS_IN_SUW) public void getAvailabilityStatus_flagOff_conditionallyUnavailable() { displayPreference(/* configAvailable= */ true, /* restricted= */ false); assertThat(mController.getAvailabilityStatus()).isEqualTo(CONDITIONALLY_UNAVAILABLE); } private RestrictedSwitchPreference displayPreference( boolean configAvailable, boolean restricted) { SettingsShadowResources.overrideResource( com.android.internal.R.bool.config_automatic_brightness_available, configAvailable); final PreferenceManager manager = new PreferenceManager(mContext); final PreferenceScreen screen = manager.createPreferenceScreen(mContext); final RestrictedSwitchPreference preference = new RestrictedSwitchPreference(mContext); preference.setKey(mController.getPreferenceKey()); preference.setDisabledByAdmin(restricted ? mock(RestrictedLockUtils.EnforcedAdmin.class) : null); assertThat(preference.isDisabledByAdmin()).isEqualTo(restricted); screen.addPreference(preference); mController.displayPreference(screen); return preference; } } tests/robotests/src/com/android/settings/display/BrightnessLevelPreferenceControllerForSetupWizardTest.java +49 −2 Original line number Diff line number Diff line Loading @@ -21,12 +21,20 @@ import static com.android.settings.core.BasePreferenceController.CONDITIONALLY_U import static com.google.common.truth.Truth.assertThat; import static org.mockito.Mockito.mock; import android.content.Context; import android.platform.test.annotations.DisableFlags; import android.platform.test.annotations.EnableFlags; import android.platform.test.flag.junit.SetFlagsRule; import androidx.preference.Preference; import androidx.preference.PreferenceManager; import androidx.preference.PreferenceScreen; import com.android.settings.accessibility.Flags; import com.android.settingslib.RestrictedLockUtils; import com.android.settingslib.RestrictedPreference; import org.junit.Before; import org.junit.Rule; Loading @@ -51,19 +59,58 @@ public class BrightnessLevelPreferenceControllerForSetupWizardTest { public void setUp() { MockitoAnnotations.initMocks(this); mContext = RuntimeEnvironment.application; mController = new BrightnessLevelPreferenceControllerForSetupWizard(mContext, /* lifecycle= */ null); } @Test @EnableFlags(Flags.FLAG_ADD_BRIGHTNESS_SETTINGS_IN_SUW) public void getAvailabilityStatus_flagOn_shouldReturnAvailable() { public void displayPreference_flagOn_preferenceVisibleTrue() { Preference preference = displayPreference(/* restricted= */ false); assertThat(preference.isVisible()).isTrue(); } @Test @EnableFlags(Flags.FLAG_ADD_BRIGHTNESS_SETTINGS_IN_SUW) public void displayPreference_flagOnAndRestricted_preferenceVisibleFalse() { Preference preference = displayPreference(/* restricted= */ true); assertThat(preference.isVisible()).isFalse(); } @Test @EnableFlags(Flags.FLAG_ADD_BRIGHTNESS_SETTINGS_IN_SUW) public void getAvailabilityStatus_flagOn_available() { displayPreference(/* restricted= */ false); assertThat(mController.getAvailabilityStatus()).isEqualTo(AVAILABLE); } @Test @EnableFlags(Flags.FLAG_ADD_BRIGHTNESS_SETTINGS_IN_SUW) public void getAvailabilityStatus_flagOnAndRestricted_conditionallyUnavailable() { displayPreference(/* restricted= */ true); assertThat(mController.getAvailabilityStatus()).isEqualTo(CONDITIONALLY_UNAVAILABLE); } @Test @DisableFlags(Flags.FLAG_ADD_BRIGHTNESS_SETTINGS_IN_SUW) public void getAvailabilityStatus_flagOff_shouldReturnConditionallyUnavailable() { public void getAvailabilityStatus_flagOff_conditionallyUnavailable() { displayPreference(/* restricted= */ false); assertThat(mController.getAvailabilityStatus()).isEqualTo(CONDITIONALLY_UNAVAILABLE); } private RestrictedPreference displayPreference(boolean restricted) { final PreferenceManager manager = new PreferenceManager(mContext); final PreferenceScreen screen = manager.createPreferenceScreen(mContext); final RestrictedPreference preference = new RestrictedPreference(mContext); preference.setKey(mController.getPreferenceKey()); preference.setDisabledByAdmin(restricted ? mock(RestrictedLockUtils.EnforcedAdmin.class) : null); assertThat(preference.isDisabledByAdmin()).isEqualTo(restricted); screen.addPreference(preference); mController.displayPreference(screen); return preference; } } Loading
src/com/android/settings/display/AutoBrightnessPreferenceControllerForSetupWizard.java +25 −1 Original line number Diff line number Diff line Loading @@ -19,8 +19,12 @@ package com.android.settings.display; import android.content.Context; import androidx.annotation.NonNull; import androidx.preference.Preference; import androidx.preference.PreferenceScreen; import com.android.settings.accessibility.Flags; import com.android.settingslib.RestrictedPreferenceHelper; import com.android.settingslib.RestrictedPreferenceHelperProvider; /** * The top-level preference controller that updates the adaptive brightness in the SetupWizard. Loading @@ -28,15 +32,35 @@ import com.android.settings.accessibility.Flags; public class AutoBrightnessPreferenceControllerForSetupWizard extends AutoBrightnessPreferenceController { private RestrictedPreferenceHelper mRestrictedPreferenceHelper; public AutoBrightnessPreferenceControllerForSetupWizard(@NonNull Context context, @NonNull String key) { super(context, key); } private boolean isRestricted() { if (mRestrictedPreferenceHelper == null) { return false; } return mRestrictedPreferenceHelper.isDisabledByAdmin() || mRestrictedPreferenceHelper.isDisabledByEcm(); } @Override public void displayPreference(PreferenceScreen screen) { super.displayPreference(screen); Preference preference = screen.findPreference(getPreferenceKey()); if (preference instanceof RestrictedPreferenceHelperProvider helperProvider) { mRestrictedPreferenceHelper = helperProvider.getRestrictedPreferenceHelper(); preference.setVisible(!isRestricted()); } } @Override @AvailabilityStatus public int getAvailabilityStatus() { if (!Flags.addBrightnessSettingsInSuw()) { if (!Flags.addBrightnessSettingsInSuw() || isRestricted()) { return CONDITIONALLY_UNAVAILABLE; } return super.getAvailabilityStatus(); Loading
src/com/android/settings/display/BrightnessLevelPreferenceControllerForSetupWizard.java +25 −1 Original line number Diff line number Diff line Loading @@ -20,8 +20,12 @@ import android.content.Context; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.preference.Preference; import androidx.preference.PreferenceScreen; import com.android.settings.accessibility.Flags; import com.android.settingslib.RestrictedPreferenceHelper; import com.android.settingslib.RestrictedPreferenceHelperProvider; import com.android.settingslib.core.lifecycle.Lifecycle; /** Loading @@ -31,15 +35,35 @@ import com.android.settingslib.core.lifecycle.Lifecycle; public class BrightnessLevelPreferenceControllerForSetupWizard extends BrightnessLevelPreferenceController { private RestrictedPreferenceHelper mRestrictedPreferenceHelper; public BrightnessLevelPreferenceControllerForSetupWizard(@NonNull Context context, @Nullable Lifecycle lifecycle) { super(context, lifecycle); } private boolean isRestricted() { if (mRestrictedPreferenceHelper == null) { return false; } return mRestrictedPreferenceHelper.isDisabledByAdmin() || mRestrictedPreferenceHelper.isDisabledByEcm(); } @Override public void displayPreference(PreferenceScreen screen) { super.displayPreference(screen); Preference preference = screen.findPreference(getPreferenceKey()); if (preference instanceof RestrictedPreferenceHelperProvider helperProvider) { mRestrictedPreferenceHelper = helperProvider.getRestrictedPreferenceHelper(); preference.setVisible(!isRestricted()); } } @Override @AvailabilityStatus public int getAvailabilityStatus() { if (!Flags.addBrightnessSettingsInSuw()) { if (!Flags.addBrightnessSettingsInSuw() || isRestricted()) { return CONDITIONALLY_UNAVAILABLE; } return super.getAvailabilityStatus(); Loading
tests/robotests/src/com/android/settings/display/AutoBrightnessPreferenceControllerForSetupWizardTest.java +63 −10 Original line number Diff line number Diff line Loading @@ -16,19 +16,28 @@ package com.android.settings.display; import static com.android.settings.core.BasePreferenceController.AVAILABLE_UNSEARCHABLE; import static com.android.settings.core.BasePreferenceController.CONDITIONALLY_UNAVAILABLE; import static com.android.settings.core.BasePreferenceController.UNSUPPORTED_ON_DEVICE; import static com.google.common.truth.Truth.assertThat; import static org.mockito.Mockito.mock; import android.content.Context; import android.platform.test.annotations.DisableFlags; import android.platform.test.annotations.EnableFlags; import android.platform.test.flag.junit.SetFlagsRule; import androidx.preference.Preference; import androidx.preference.PreferenceManager; import androidx.preference.PreferenceScreen; import com.android.settings.accessibility.Flags; import com.android.settings.testutils.shadow.SettingsShadowResources; import com.android.settingslib.RestrictedLockUtils; import com.android.settingslib.RestrictedSwitchPreference; import org.junit.Before; import org.junit.Rule; Loading Loading @@ -58,35 +67,79 @@ public class AutoBrightnessPreferenceControllerForSetupWizardTest { public void setUp() { MockitoAnnotations.initMocks(this); mContext = RuntimeEnvironment.application; mController = new AutoBrightnessPreferenceControllerForSetupWizard(mContext, PREFERENCE_KEY); } @Test @EnableFlags(Flags.FLAG_ADD_BRIGHTNESS_SETTINGS_IN_SUW) public void getAvailabilityStatus_configTrueAndFlagOn_shouldReturnAvailableUnsearchable() { SettingsShadowResources.overrideResource( com.android.internal.R.bool.config_automatic_brightness_available, true); public void displayPreference_flagOn_preferenceVisibleTrue() { Preference preference = displayPreference(/* configAvailable= */ true, /* restricted= */ false); assertThat(preference.isVisible()).isTrue(); } @Test @EnableFlags(Flags.FLAG_ADD_BRIGHTNESS_SETTINGS_IN_SUW) public void displayPreference_flagOnAndRestricted_preferenceVisibleFalse() { Preference preference = displayPreference(/* configAvailable= */ true, /* restricted= */ true); assertThat(preference.isVisible()).isFalse(); } @Test @EnableFlags(Flags.FLAG_ADD_BRIGHTNESS_SETTINGS_IN_SUW) public void getAvailabilityStatus_configTrueAndFlagOn_availableUnsearchable() { displayPreference(/* configAvailable= */ true, /* restricted= */ false); assertThat(mController.getAvailabilityStatus()).isEqualTo(AVAILABLE_UNSEARCHABLE); } @Test @EnableFlags(Flags.FLAG_ADD_BRIGHTNESS_SETTINGS_IN_SUW) public void getAvailabilityStatus_configFalseSetAndFlagOn_shouldReturnUnsupportedOnDevice() { SettingsShadowResources.overrideResource( com.android.internal.R.bool.config_automatic_brightness_available, false); public void getAvailabilityStatus_configTrueAndFlagOnAndRestricted_conditionallyUnavailable() { displayPreference(/* configAvailable= */ true, /* restricted= */ true); assertThat(mController.getAvailabilityStatus()).isEqualTo(CONDITIONALLY_UNAVAILABLE); } @Test @EnableFlags(Flags.FLAG_ADD_BRIGHTNESS_SETTINGS_IN_SUW) public void getAvailabilityStatus_configFalseAndFlagOn_unsupportedOnDevice() { displayPreference(/* configAvailable= */ false, /* restricted= */ false); assertThat(mController.getAvailabilityStatus()).isEqualTo(UNSUPPORTED_ON_DEVICE); } @Test @DisableFlags(Flags.FLAG_ADD_BRIGHTNESS_SETTINGS_IN_SUW) public void getAvailabilityStatus_flagOff_shouldReturnConditionallyUnavailable() { SettingsShadowResources.overrideResource( com.android.internal.R.bool.config_automatic_brightness_available, true); @EnableFlags(Flags.FLAG_ADD_BRIGHTNESS_SETTINGS_IN_SUW) public void getAvailabilityStatus_configFalseAndFlagOnAndRestricted_conditionallyUnavailable() { displayPreference(/* configAvailable= */ false, /* restricted= */ true); assertThat(mController.getAvailabilityStatus()).isEqualTo(CONDITIONALLY_UNAVAILABLE); } @Test @DisableFlags(Flags.FLAG_ADD_BRIGHTNESS_SETTINGS_IN_SUW) public void getAvailabilityStatus_flagOff_conditionallyUnavailable() { displayPreference(/* configAvailable= */ true, /* restricted= */ false); assertThat(mController.getAvailabilityStatus()).isEqualTo(CONDITIONALLY_UNAVAILABLE); } private RestrictedSwitchPreference displayPreference( boolean configAvailable, boolean restricted) { SettingsShadowResources.overrideResource( com.android.internal.R.bool.config_automatic_brightness_available, configAvailable); final PreferenceManager manager = new PreferenceManager(mContext); final PreferenceScreen screen = manager.createPreferenceScreen(mContext); final RestrictedSwitchPreference preference = new RestrictedSwitchPreference(mContext); preference.setKey(mController.getPreferenceKey()); preference.setDisabledByAdmin(restricted ? mock(RestrictedLockUtils.EnforcedAdmin.class) : null); assertThat(preference.isDisabledByAdmin()).isEqualTo(restricted); screen.addPreference(preference); mController.displayPreference(screen); return preference; } }
tests/robotests/src/com/android/settings/display/BrightnessLevelPreferenceControllerForSetupWizardTest.java +49 −2 Original line number Diff line number Diff line Loading @@ -21,12 +21,20 @@ import static com.android.settings.core.BasePreferenceController.CONDITIONALLY_U import static com.google.common.truth.Truth.assertThat; import static org.mockito.Mockito.mock; import android.content.Context; import android.platform.test.annotations.DisableFlags; import android.platform.test.annotations.EnableFlags; import android.platform.test.flag.junit.SetFlagsRule; import androidx.preference.Preference; import androidx.preference.PreferenceManager; import androidx.preference.PreferenceScreen; import com.android.settings.accessibility.Flags; import com.android.settingslib.RestrictedLockUtils; import com.android.settingslib.RestrictedPreference; import org.junit.Before; import org.junit.Rule; Loading @@ -51,19 +59,58 @@ public class BrightnessLevelPreferenceControllerForSetupWizardTest { public void setUp() { MockitoAnnotations.initMocks(this); mContext = RuntimeEnvironment.application; mController = new BrightnessLevelPreferenceControllerForSetupWizard(mContext, /* lifecycle= */ null); } @Test @EnableFlags(Flags.FLAG_ADD_BRIGHTNESS_SETTINGS_IN_SUW) public void getAvailabilityStatus_flagOn_shouldReturnAvailable() { public void displayPreference_flagOn_preferenceVisibleTrue() { Preference preference = displayPreference(/* restricted= */ false); assertThat(preference.isVisible()).isTrue(); } @Test @EnableFlags(Flags.FLAG_ADD_BRIGHTNESS_SETTINGS_IN_SUW) public void displayPreference_flagOnAndRestricted_preferenceVisibleFalse() { Preference preference = displayPreference(/* restricted= */ true); assertThat(preference.isVisible()).isFalse(); } @Test @EnableFlags(Flags.FLAG_ADD_BRIGHTNESS_SETTINGS_IN_SUW) public void getAvailabilityStatus_flagOn_available() { displayPreference(/* restricted= */ false); assertThat(mController.getAvailabilityStatus()).isEqualTo(AVAILABLE); } @Test @EnableFlags(Flags.FLAG_ADD_BRIGHTNESS_SETTINGS_IN_SUW) public void getAvailabilityStatus_flagOnAndRestricted_conditionallyUnavailable() { displayPreference(/* restricted= */ true); assertThat(mController.getAvailabilityStatus()).isEqualTo(CONDITIONALLY_UNAVAILABLE); } @Test @DisableFlags(Flags.FLAG_ADD_BRIGHTNESS_SETTINGS_IN_SUW) public void getAvailabilityStatus_flagOff_shouldReturnConditionallyUnavailable() { public void getAvailabilityStatus_flagOff_conditionallyUnavailable() { displayPreference(/* restricted= */ false); assertThat(mController.getAvailabilityStatus()).isEqualTo(CONDITIONALLY_UNAVAILABLE); } private RestrictedPreference displayPreference(boolean restricted) { final PreferenceManager manager = new PreferenceManager(mContext); final PreferenceScreen screen = manager.createPreferenceScreen(mContext); final RestrictedPreference preference = new RestrictedPreference(mContext); preference.setKey(mController.getPreferenceKey()); preference.setDisabledByAdmin(restricted ? mock(RestrictedLockUtils.EnforcedAdmin.class) : null); assertThat(preference.isDisabledByAdmin()).isEqualTo(restricted); screen.addPreference(preference); mController.displayPreference(screen); return preference; } }