Add isSliceable API to BasePrefController

Only support explicitly approved Settings Slices,
dictated by controllers which return true for the new
method isSliceable.

Updating the supported settings to a whitelist means that
the method to return all available slices must be updated,
and checking slicability when we index slices.

Test: robotests
Change-Id: I85848c2cdf3e151fa94b33dd1dc5c0374ef94b5b
Merged-In: Ib2b9690cdd0036b5cc4a1cb846c52bce7c824ab9
Fixes: 79779103
This commit is contained in:
Matthew Fritze
2018-05-18 17:59:26 -07:00
committed by Andrew Sapperstein
parent a419c4717d
commit 1dd25fd87c
47 changed files with 471 additions and 16 deletions

View File

@@ -150,4 +150,19 @@ public class AmbientDisplayAlwaysOnPreferenceControllerTest {
assertThat(newValue).isEqualTo(currentValue);
}
@Test
public void isSliceableCorrectKey_returnsTrue() {
final AmbientDisplayAlwaysOnPreferenceController controller =
new AmbientDisplayAlwaysOnPreferenceController(mContext,
"ambient_display_always_on");
assertThat(controller.isSliceable()).isTrue();
}
@Test
public void isSliceableIncorrectKey_returnsFalse() {
final AmbientDisplayAlwaysOnPreferenceController controller =
new AmbientDisplayAlwaysOnPreferenceController(mContext, "bad_key");
assertThat(controller.isSliceable()).isFalse();
}
}

View File

@@ -182,4 +182,19 @@ public class AmbientDisplayNotificationsPreferenceControllerTest {
assertThat(newValue).isEqualTo(currentValue);
}
@Test
public void isSliceableCorrectKey_returnsTrue() {
final AmbientDisplayNotificationsPreferenceController controller =
new AmbientDisplayNotificationsPreferenceController(mContext,
"ambient_display_notification");
assertThat(controller.isSliceable()).isTrue();
}
@Test
public void isSliceableIncorrectKey_returnsFalse() {
final AmbientDisplayNotificationsPreferenceController controller =
new AmbientDisplayNotificationsPreferenceController(mContext, "bad_key");
assertThat(controller.isSliceable()).isFalse();
}
}

View File

@@ -93,4 +93,19 @@ public class AutoBrightnessPreferenceControllerTest {
assertThat(newValue).isEqualTo(SCREEN_BRIGHTNESS_MODE_AUTOMATIC);
}
@Test
public void isSliceableCorrectKey_returnsTrue() {
final AutoBrightnessPreferenceController controller =
new AutoBrightnessPreferenceController(mContext,
"auto_brightness");
assertThat(controller.isSliceable()).isTrue();
}
@Test
public void isSliceableIncorrectKey_returnsFalse() {
final AutoBrightnessPreferenceController controller =
new AutoBrightnessPreferenceController(mContext, "bad_key");
assertThat(controller.isSliceable()).isFalse();
}
}

View File

@@ -104,7 +104,7 @@ public class AutoRotatePreferenceControllerTest {
@Test
public void testGetAvailabilityStatus() {
assertThat(mController.getAvailabilityStatus()).isEqualTo(BasePreferenceController
.CONDITIONALLY_UNAVAILABLE);
.UNSUPPORTED_ON_DEVICE);
enableAutoRotationPreference();
@@ -114,7 +114,7 @@ public class AutoRotatePreferenceControllerTest {
disableAutoRotationPreference();
assertThat(mController.getAvailabilityStatus()).isEqualTo(BasePreferenceController
.CONDITIONALLY_UNAVAILABLE);
.UNSUPPORTED_ON_DEVICE);
}
@Test
@@ -144,6 +144,20 @@ public class AutoRotatePreferenceControllerTest {
assertThat(RotationPolicy.isRotationLocked(mContext)).isFalse();
}
@Test
public void isSliceableCorrectKey_returnsTrue() {
final AutoRotatePreferenceController controller =
new AutoRotatePreferenceController(mContext, "auto_rotate");
assertThat(controller.isSliceable()).isTrue();
}
@Test
public void isSliceableIncorrectKey_returnsFalse() {
final AutoRotatePreferenceController controller =
new AutoRotatePreferenceController(mContext, "bad_key");
assertThat(controller.isSliceable()).isFalse();
}
private void enableAutoRotationPreference() {
when(mPackageManager.hasSystemFeature(anyString())).thenReturn(true);
when(mContext.getResources().getBoolean(anyInt())).thenReturn(true);

View File

@@ -72,6 +72,20 @@ public class NightDisplayActivationPreferenceControllerTest {
assertThat(mController.isAvailable()).isFalse();
}
@Test
public void isSliceableCorrectKey_returnsTrue() {
final NightDisplayActivationPreferenceController controller =
new NightDisplayActivationPreferenceController(mContext,"night_display_activated");
assertThat(controller.isSliceable()).isTrue();
}
@Test
public void isSliceableIncorrectKey_returnsFalse() {
final NightDisplayActivationPreferenceController controller =
new NightDisplayActivationPreferenceController(mContext, "bad_key");
assertThat(controller.isSliceable()).isFalse();
}
@Test
public void onClick_activates() {
Secure.putInt(mContext.getContentResolver(), Secure.NIGHT_DISPLAY_ACTIVATED, 0);

View File

@@ -76,4 +76,18 @@ public class NightDisplayIntensityPreferenceControllerTest {
Secure.NIGHT_DISPLAY_COLOR_TEMPERATURE, -1))
.isEqualTo(3030);
}
@Test
public void isSliceableCorrectKey_returnsTrue() {
final NightDisplayIntensityPreferenceController controller =
new NightDisplayIntensityPreferenceController(mContext,"night_display_temperature");
assertThat(controller.isSliceable()).isTrue();
}
@Test
public void isSliceableIncorrectKey_returnsFalse() {
final NightDisplayIntensityPreferenceController controller =
new NightDisplayIntensityPreferenceController(mContext, "bad_key");
assertThat(controller.isSliceable()).isFalse();
}
}