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.

Fixes: 80157462
Test: robotests
Merged-In: Ida90c9377afb19de320dfce54175f51eee088cfe
Change-Id: I1a1be345e84cbd9f300440e6431d4b331d051dac
This commit is contained in:
Matthew Fritze
2018-05-22 06:50:49 -07:00
parent 28dc3917a9
commit 250e26aff9
2 changed files with 11 additions and 5 deletions

View File

@@ -282,6 +282,7 @@ public class SliceBuilderUtils {
final PendingIntent actionIntent = getSliderAction(context, sliceData); final PendingIntent actionIntent = getSliderAction(context, sliceData);
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());
final CharSequence subtitleText = getSubtitleText(context, controller, sliceData);
@ColorInt final int color = Utils.getColorAccent(context); @ColorInt final int color = Utils.getColorAccent(context);
final SliceAction primaryAction = new SliceAction(contentIntent, icon, final SliceAction primaryAction = new SliceAction(contentIntent, icon,
sliceData.getTitle()); sliceData.getTitle());
@@ -289,12 +290,14 @@ public class SliceBuilderUtils {
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.getColorAccent(context)); assertThat(color).isEqualTo(Utils.getColorAccent(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));