Inline slider with header

Add a header to the slider slices to allow for a second line of text.
This is important to add more context to slices outside of settings.

Bug: 80157462
Test: robotests
Change-Id: Ida90c9377afb19de320dfce54175f51eee088cfe
This commit is contained in:
Matthew Fritze
2018-05-22 06:50:49 -07:00
parent c4a3393b45
commit 647be5fc91
2 changed files with 11 additions and 5 deletions

View File

@@ -283,18 +283,21 @@ public class SliceBuilderUtils {
final PendingIntent contentIntent = getContentPendingIntent(context, sliceData); final PendingIntent contentIntent = getContentPendingIntent(context, sliceData);
final IconCompat icon = IconCompat.createWithResource(context, sliceData.getIconResource()); final IconCompat icon = IconCompat.createWithResource(context, sliceData.getIconResource());
@ColorInt final int color = Utils.getColorAccentDefaultColor(context); @ColorInt final int color = Utils.getColorAccentDefaultColor(context);
final CharSequence subtitleText = getSubtitleText(context, controller, sliceData);
final SliceAction primaryAction = new SliceAction(contentIntent, icon, final SliceAction primaryAction = new SliceAction(contentIntent, icon,
sliceData.getTitle()); sliceData.getTitle());
final List<String> keywords = buildSliceKeywords(sliceData); final List<String> keywords = buildSliceKeywords(sliceData);
return new ListBuilder(context, sliceData.getUri(), ListBuilder.INFINITY) return new ListBuilder(context, sliceData.getUri(), ListBuilder.INFINITY)
.setAccentColor(color) .setAccentColor(color)
.addInputRange(builder -> builder .setHeader(builder -> builder
.setTitle(sliceData.getTitle()) .setTitle(sliceData.getTitle())
.setSubtitle(subtitleText)
.setPrimaryAction(primaryAction))
.addInputRange(builder -> builder
.setMax(sliderController.getMaxSteps()) .setMax(sliderController.getMaxSteps())
.setValue(sliderController.getSliderPosition()) .setValue(sliderController.getSliderPosition())
.setInputAction(actionIntent) .setInputAction(actionIntent))
.setPrimaryAction(primaryAction))
.setKeywords(keywords) .setKeywords(keywords)
.build(); .build();
} }

View File

@@ -150,14 +150,17 @@ public class SliceTester {
final int color = colorItem.getInt(); final int color = colorItem.getInt();
assertThat(color).isEqualTo(Utils.getColorAccentDefaultColor(context)); assertThat(color).isEqualTo(Utils.getColorAccentDefaultColor(context));
final IconCompat expectedToggleIcon = IconCompat.createWithResource(context, final SliceAction primaryAction = metadata.getPrimaryAction();
final IconCompat expectedIcon = IconCompat.createWithResource(context,
sliceData.getIconResource()); sliceData.getIconResource());
assertThat(expectedIcon.toString()).isEqualTo(primaryAction.getIcon().toString());
final long sliceTTL = metadata.getExpiry(); final long sliceTTL = metadata.getExpiry();
assertThat(sliceTTL).isEqualTo(ListBuilder.INFINITY); assertThat(sliceTTL).isEqualTo(ListBuilder.INFINITY);
// Check primary intent // Check primary intent
final PendingIntent primaryPendingIntent = metadata.getPrimaryAction().getAction(); final PendingIntent primaryPendingIntent = primaryAction.getAction();
assertThat(primaryPendingIntent).isEqualTo( assertThat(primaryPendingIntent).isEqualTo(
SliceBuilderUtils.getContentPendingIntent(context, sliceData)); SliceBuilderUtils.getContentPendingIntent(context, sliceData));