diff --git a/src/com/android/settings/media/MediaOutputIndicatorSlice.java b/src/com/android/settings/media/MediaOutputIndicatorSlice.java index d66ee8b3cb6..17d7cee83fc 100644 --- a/src/com/android/settings/media/MediaOutputIndicatorSlice.java +++ b/src/com/android/settings/media/MediaOutputIndicatorSlice.java @@ -23,6 +23,7 @@ import android.app.PendingIntent; import android.bluetooth.BluetoothDevice; import android.content.Context; import android.content.Intent; +import android.graphics.Bitmap; import android.net.Uri; import android.util.Log; @@ -77,18 +78,24 @@ public class MediaOutputIndicatorSlice implements CustomSliceable { final SliceAction primarySliceAction = SliceAction.createDeeplink( primaryActionIntent, icon, ListBuilder.ICON_IMAGE, title); @ColorInt final int color = Utils.getColorAccentDefaultColor(mContext); - + // To set an empty icon to indent the row final ListBuilder listBuilder = new ListBuilder(mContext, MEDIA_OUTPUT_INDICATOR_SLICE_URI, ListBuilder.INFINITY) .setAccentColor(color) .addRow(new ListBuilder.RowBuilder() .setTitle(title) + .setTitleItem(createEmptyIcon(), ListBuilder.ICON_IMAGE) .setSubtitle(findActiveDeviceName()) .setPrimaryAction(primarySliceAction)); return listBuilder.build(); } + private IconCompat createEmptyIcon() { + final Bitmap bitmap = Bitmap.createBitmap(1, 1, Bitmap.Config.ARGB_8888); + return IconCompat.createWithBitmap(bitmap); + } + private Intent getMediaOutputSliceIntent() { final Intent intent = new Intent() .setAction(MediaOutputSliceConstants.ACTION_MEDIA_OUTPUT) diff --git a/src/com/android/settings/slices/SliceBuilderUtils.java b/src/com/android/settings/slices/SliceBuilderUtils.java index 1785199e3c8..34c0f1b5ff2 100644 --- a/src/com/android/settings/slices/SliceBuilderUtils.java +++ b/src/com/android/settings/slices/SliceBuilderUtils.java @@ -286,7 +286,7 @@ public class SliceBuilderUtils { final PendingIntent actionIntent = getSliderAction(context, sliceData); final PendingIntent contentIntent = getContentPendingIntent(context, sliceData); final IconCompat icon = getSafeIcon(context, sliceData); - @ColorInt final int color = Utils.getColorAccentDefaultColor(context); + @ColorInt int color = Utils.getColorAccentDefaultColor(context); final CharSequence subtitleText = getSubtitleText(context, controller, sliceData); final SliceAction primaryAction = SliceAction.createDeeplink(contentIntent, icon, ListBuilder.ICON_IMAGE, sliceData.getTitle()); @@ -299,17 +299,22 @@ public class SliceBuilderUtils { if (cur > sliderController.getMax()) { cur = sliderController.getMax(); } + final InputRangeBuilder inputRangeBuilder = new InputRangeBuilder() + .setTitle(sliceData.getTitle()) + .setSubtitle(subtitleText) + .setPrimaryAction(primaryAction) + .setMax(sliderController.getMax()) + .setMin(sliderController.getMin()) + .setValue(cur) + .setInputAction(actionIntent); + if (sliceData.getIconResource() != 0) { + inputRangeBuilder.setTitleItem(icon, ListBuilder.ICON_IMAGE); + color = CustomSliceable.COLOR_NOT_TINTED; + } return new ListBuilder(context, sliceData.getUri(), ListBuilder.INFINITY) .setAccentColor(color) - .addInputRange(new InputRangeBuilder() - .setTitle(sliceData.getTitle()) - .setSubtitle(subtitleText) - .setPrimaryAction(primaryAction) - .setMax(sliderController.getMax()) - .setMin(sliderController.getMin()) - .setValue(cur) - .setInputAction(actionIntent)) + .addInputRange(inputRangeBuilder) .setKeywords(keywords) .build(); }