Prioritize dynamic summaries
If both Xml and a controller provide a summary, the controller's should be prioritized. Change-Id: I030746b0f253ce4884a7868e385069b208f63082 Fixes: 77602860 Test: robotests
This commit is contained in:
@@ -253,11 +253,7 @@ public class SliceBuilderUtils {
|
|||||||
@VisibleForTesting
|
@VisibleForTesting
|
||||||
static CharSequence getSubtitleText(Context context, AbstractPreferenceController controller,
|
static CharSequence getSubtitleText(Context context, AbstractPreferenceController controller,
|
||||||
SliceData sliceData) {
|
SliceData sliceData) {
|
||||||
CharSequence summaryText = sliceData.getSummary();
|
CharSequence summaryText;
|
||||||
if (isValidSummary(context, summaryText)) {
|
|
||||||
return summaryText;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (controller != null) {
|
if (controller != null) {
|
||||||
summaryText = controller.getSummary();
|
summaryText = controller.getSummary();
|
||||||
|
|
||||||
@@ -266,7 +262,12 @@ public class SliceBuilderUtils {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return sliceData.getScreenTitle();
|
summaryText = sliceData.getSummary();
|
||||||
|
if (isValidSummary(context, summaryText)) {
|
||||||
|
return summaryText;
|
||||||
|
}
|
||||||
|
|
||||||
|
return "";
|
||||||
}
|
}
|
||||||
|
|
||||||
private static boolean isValidSummary(Context context, CharSequence summary) {
|
private static boolean isValidSummary(Context context, CharSequence summary) {
|
||||||
|
@@ -188,26 +188,25 @@ public class SliceBuilderUtilsTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testDynamicSummary_returnsSliceScreenTitle() {
|
public void testDynamicSummary_returnsSliceEmptyString() {
|
||||||
final SliceData data = getDummyData((String) null);
|
final SliceData data = getDummyData((String) null);
|
||||||
final FakePreferenceController controller = new FakePreferenceController(mContext, KEY);
|
final FakePreferenceController controller = new FakePreferenceController(mContext, KEY);
|
||||||
|
|
||||||
final CharSequence summary = SliceBuilderUtils.getSubtitleText(mContext, controller, data);
|
final CharSequence summary = SliceBuilderUtils.getSubtitleText(mContext, controller, data);
|
||||||
|
|
||||||
assertThat(summary).isEqualTo(data.getScreenTitle());
|
assertThat(summary).isEqualTo("");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testDynamicSummary_placeHolderString_returnsScreenTitle() {
|
public void testDynamicSummary_placeHolderString_returnsEmptyString() {
|
||||||
final SliceData data = getDummyData(mContext.getString(R.string.summary_placeholder));
|
final SliceData data = getDummyData(mContext.getString(R.string.summary_placeholder));
|
||||||
final FakePreferenceController controller = new FakePreferenceController(mContext, KEY);
|
final FakePreferenceController controller = new FakePreferenceController(mContext, KEY);
|
||||||
final CharSequence summary = SliceBuilderUtils.getSubtitleText(mContext, controller, data);
|
final CharSequence summary = SliceBuilderUtils.getSubtitleText(mContext, controller, data);
|
||||||
|
|
||||||
assertThat(summary).isEqualTo(data.getScreenTitle());
|
assertThat(summary).isEqualTo("");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testDynamicSummary_sliceDataAndFragmentPlaceholder_returnsSliceScreenTitle() {
|
public void testDynamicSummary_sliceDataAndFragmentPlaceholder_returnsSliceEmptyString() {
|
||||||
final String summaryPlaceholder = mContext.getString(R.string.summary_placeholder);
|
final String summaryPlaceholder = mContext.getString(R.string.summary_placeholder);
|
||||||
final SliceData data = getDummyData(summaryPlaceholder);
|
final SliceData data = getDummyData(summaryPlaceholder);
|
||||||
final FakePreferenceController controller = spy(
|
final FakePreferenceController controller = spy(
|
||||||
@@ -216,7 +215,19 @@ public class SliceBuilderUtilsTest {
|
|||||||
|
|
||||||
CharSequence summary = SliceBuilderUtils.getSubtitleText(mContext, controller, data);
|
CharSequence summary = SliceBuilderUtils.getSubtitleText(mContext, controller, data);
|
||||||
|
|
||||||
assertThat(summary).isEqualTo(data.getScreenTitle());
|
assertThat(summary).isEqualTo("");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void summaryText_bothDynamicAndStaticSummary_dynamicSummaryReturned() {
|
||||||
|
SliceData data = getDummyData("bad_summary");
|
||||||
|
FakePreferenceController controller = spy(new FakePreferenceController(mContext, KEY));
|
||||||
|
String controllerSummary = "new_Summary";
|
||||||
|
doReturn(controllerSummary).when(controller).getSummary();
|
||||||
|
|
||||||
|
CharSequence summary = SliceBuilderUtils.getSubtitleText(mContext, controller, data);
|
||||||
|
|
||||||
|
assertThat(summary).isEqualTo(controllerSummary);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
Reference in New Issue
Block a user