Convert xml based API allowDynamicSummaryInSlice to java

- Add boolean useDynamicSliceSummary() in Sliceable interface. This is
  the switch equivalent to android:allowDynamicSummaryInSlice in xml. It
  moves the setter closer to regular Sliceable APIs, thus less easily to
  miss.
- Coverted all android:allowDynamicSummaryInSlice to use the java API.
  - Except 2 prefs in my_device_info. They incorrectly set this to true
  previously (controller is not sliceable, no point setting
  dynamicSliceSummary to true. They just won't do anything)

Fixes: 128446156
Test: robolectric
Change-Id: Ic57acd590dec3e87dcf4592df137321d14b854d9
This commit is contained in:
Fan Zhang
2019-03-29 15:43:46 -07:00
parent 961f038c4d
commit b1b07e2030
38 changed files with 108 additions and 224 deletions

View File

@@ -69,7 +69,6 @@ public class SliceBuilderUtilsTest {
private final Class SLIDER_CONTROLLER = FakeSliderController.class;
private final Class COPYABLE_CONTROLLER = FakeCopyableController.class;
private final Class CONTEXT_CONTROLLER = FakeContextOnlyPreferenceController.class;
private final boolean IS_DYNAMIC_SUMMARY_ALLOWED = false;
private final String INTENT_PATH = SettingsSlicesContract.PATH_SETTING_INTENT + "/" + KEY;
private final String ACTION_PATH = SettingsSlicesContract.PATH_SETTING_ACTION + "/" + KEY;
@@ -206,7 +205,7 @@ public class SliceBuilderUtilsTest {
@Test
public void getDynamicSummary_allowDynamicSummary_returnsControllerSummary() {
final SliceData data = getDummyData(true /*isDynamicSummaryAllowed*/);
final SliceData data = getDummyData();
final FakePreferenceController controller = spy(
new FakePreferenceController(mContext, KEY));
final String controllerSummary = "new_Summary";
@@ -219,27 +218,17 @@ public class SliceBuilderUtilsTest {
@Test
public void getDynamicSummary_allowDynamicSummary_nullSummary_returnsNull() {
final SliceData data = getDummyData(true /*isDynamicSummaryAllowed*/);
final SliceData data = getDummyData();
final FakePreferenceController controller = spy(
new FakePreferenceController(mContext, KEY));
final String controllerSummary = null;
doReturn(controllerSummary).when(controller).getSummary();
doReturn(null).when(controller).getSummary();
final CharSequence summary = SliceBuilderUtils.getSubtitleText(mContext, controller, data);
assertThat(summary).isNull();
}
@Test
public void getDynamicSummary_returnsScreenTitle() {
final SliceData data = getDummyData();
final FakePreferenceController controller = new FakePreferenceController(mContext, KEY);
final CharSequence summary = SliceBuilderUtils.getSubtitleText(mContext, controller, data);
assertThat(summary).isEqualTo(data.getScreenTitle());
}
@Test
public void getDynamicSummary_noScreenTitle_returnsPrefControllerSummary() {
final SliceData data = getDummyData("", "");
@@ -272,17 +261,7 @@ public class SliceBuilderUtilsTest {
final FakePreferenceController controller = new FakePreferenceController(mContext, KEY);
final CharSequence summary = SliceBuilderUtils.getSubtitleText(mContext, controller, data);
assertThat(summary).isEqualTo("");
}
@Test
public void
getDynamicSummary_emptyScreenTitle_placeHolderControllerSummary_returnsEmptyString() {
final SliceData data = getDummyData(mContext.getString(R.string.summary_placeholder), null);
final FakePreferenceController controller = new FakePreferenceController(mContext, KEY);
final CharSequence summary = SliceBuilderUtils.getSubtitleText(mContext, controller, data);
assertThat(summary).isEqualTo("");
assertThat(summary).isNull();
}
@Test
@@ -295,7 +274,7 @@ public class SliceBuilderUtilsTest {
CharSequence summary = SliceBuilderUtils.getSubtitleText(mContext, controller, data);
assertThat(summary).isEqualTo("");
assertThat(summary).isEqualTo(summaryPlaceholder);
}
@Test
@@ -449,7 +428,7 @@ public class SliceBuilderUtilsTest {
R.drawable.ic_settings_accent).toIcon().getResId();
final SliceData data = getDummyData(FakeUnavailablePreferenceController.class,
SUMMARY, SliceData.SliceType.SWITCH, SCREEN_TITLE, 0 /* icon */,
IS_DYNAMIC_SUMMARY_ALLOWED, null /* unavailableSliceSubtitle */);
null /* unavailableSliceSubtitle */);
Settings.Global.putInt(mContext.getContentResolver(),
FakeUnavailablePreferenceController.AVAILABILITY_KEY,
BasePreferenceController.DISABLED_DEPENDENT_SETTING);
@@ -523,7 +502,7 @@ public class SliceBuilderUtilsTest {
final String subtitleOfUnavailableSlice = "subtitleOfUnavailableSlice";
final SliceData data = getDummyData(FakeUnavailablePreferenceController.class,
SUMMARY, SliceData.SliceType.SWITCH, SCREEN_TITLE, 0 /* icon */,
IS_DYNAMIC_SUMMARY_ALLOWED, subtitleOfUnavailableSlice);
subtitleOfUnavailableSlice);
Settings.Global.putInt(mContext.getContentResolver(),
FakeUnavailablePreferenceController.AVAILABILITY_KEY,
BasePreferenceController.DISABLED_DEPENDENT_SETTING);
@@ -551,32 +530,26 @@ public class SliceBuilderUtilsTest {
private SliceData getDummyData() {
return getDummyData(TOGGLE_CONTROLLER, SUMMARY, SliceData.SliceType.SWITCH, SCREEN_TITLE,
ICON, IS_DYNAMIC_SUMMARY_ALLOWED, null /* unavailableSliceSubtitle */);
}
private SliceData getDummyData(boolean isDynamicSummaryAllowed) {
return getDummyData(TOGGLE_CONTROLLER, SUMMARY, SliceData.SliceType.SWITCH, SCREEN_TITLE,
ICON, isDynamicSummaryAllowed, null /* unavailableSliceSubtitle */);
ICON, null /* unavailableSliceSubtitle */);
}
private SliceData getDummyData(Class prefController, int sliceType, int icon) {
return getDummyData(prefController, SUMMARY, sliceType, SCREEN_TITLE,
icon, IS_DYNAMIC_SUMMARY_ALLOWED, null /* unavailableSliceSubtitle */);
icon, null /* unavailableSliceSubtitle */);
}
private SliceData getDummyData(String summary, String screenTitle) {
return getDummyData(TOGGLE_CONTROLLER, summary, SliceData.SliceType.SWITCH, screenTitle,
ICON, IS_DYNAMIC_SUMMARY_ALLOWED, null /* unavailableSliceSubtitle */);
ICON, null /* unavailableSliceSubtitle */);
}
private SliceData getDummyData(Class prefController, int sliceType) {
return getDummyData(prefController, SUMMARY, sliceType, SCREEN_TITLE, ICON,
IS_DYNAMIC_SUMMARY_ALLOWED, null /* unavailableSliceSubtitle */);
null /* unavailableSliceSubtitle */);
}
private SliceData getDummyData(Class prefController, String summary, int sliceType,
String screenTitle, int icon, boolean isDynamicSummaryAllowed,
String unavailableSliceSubtitle) {
String screenTitle, int icon, String unavailableSliceSubtitle) {
return new SliceData.Builder()
.setKey(KEY)
.setTitle(TITLE)
@@ -588,7 +561,6 @@ public class SliceBuilderUtilsTest {
.setUri(URI)
.setPreferenceControllerClassName(prefController.getName())
.setSliceType(sliceType)
.setDynamicSummaryAllowed(isDynamicSummaryAllowed)
.setUnavailableSliceSubtitle(unavailableSliceSubtitle)
.build();
}