Update preferenceSlice layout rule for new volume panel design
-show icon at left side of Slice if the mapping preference contains icon -align MediaOutputIndicatorSlice layout with other volume slice Bug: 148821795 Test: make -j42 RunSettingsRoboTests Change-Id: I5b0cf7f32f355503942cb62ccf36f77ceeb1b30d
This commit is contained in:
@@ -23,6 +23,7 @@ import android.app.PendingIntent;
|
|||||||
import android.bluetooth.BluetoothDevice;
|
import android.bluetooth.BluetoothDevice;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
|
import android.graphics.Bitmap;
|
||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
|
|
||||||
@@ -77,18 +78,24 @@ public class MediaOutputIndicatorSlice implements CustomSliceable {
|
|||||||
final SliceAction primarySliceAction = SliceAction.createDeeplink(
|
final SliceAction primarySliceAction = SliceAction.createDeeplink(
|
||||||
primaryActionIntent, icon, ListBuilder.ICON_IMAGE, title);
|
primaryActionIntent, icon, ListBuilder.ICON_IMAGE, title);
|
||||||
@ColorInt final int color = Utils.getColorAccentDefaultColor(mContext);
|
@ColorInt final int color = Utils.getColorAccentDefaultColor(mContext);
|
||||||
|
// To set an empty icon to indent the row
|
||||||
final ListBuilder listBuilder = new ListBuilder(mContext,
|
final ListBuilder listBuilder = new ListBuilder(mContext,
|
||||||
MEDIA_OUTPUT_INDICATOR_SLICE_URI,
|
MEDIA_OUTPUT_INDICATOR_SLICE_URI,
|
||||||
ListBuilder.INFINITY)
|
ListBuilder.INFINITY)
|
||||||
.setAccentColor(color)
|
.setAccentColor(color)
|
||||||
.addRow(new ListBuilder.RowBuilder()
|
.addRow(new ListBuilder.RowBuilder()
|
||||||
.setTitle(title)
|
.setTitle(title)
|
||||||
|
.setTitleItem(createEmptyIcon(), ListBuilder.ICON_IMAGE)
|
||||||
.setSubtitle(findActiveDeviceName())
|
.setSubtitle(findActiveDeviceName())
|
||||||
.setPrimaryAction(primarySliceAction));
|
.setPrimaryAction(primarySliceAction));
|
||||||
return listBuilder.build();
|
return listBuilder.build();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private IconCompat createEmptyIcon() {
|
||||||
|
final Bitmap bitmap = Bitmap.createBitmap(1, 1, Bitmap.Config.ARGB_8888);
|
||||||
|
return IconCompat.createWithBitmap(bitmap);
|
||||||
|
}
|
||||||
|
|
||||||
private Intent getMediaOutputSliceIntent() {
|
private Intent getMediaOutputSliceIntent() {
|
||||||
final Intent intent = new Intent()
|
final Intent intent = new Intent()
|
||||||
.setAction(MediaOutputSliceConstants.ACTION_MEDIA_OUTPUT)
|
.setAction(MediaOutputSliceConstants.ACTION_MEDIA_OUTPUT)
|
||||||
|
@@ -286,7 +286,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 = getSafeIcon(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 CharSequence subtitleText = getSubtitleText(context, controller, sliceData);
|
||||||
final SliceAction primaryAction = SliceAction.createDeeplink(contentIntent, icon,
|
final SliceAction primaryAction = SliceAction.createDeeplink(contentIntent, icon,
|
||||||
ListBuilder.ICON_IMAGE, sliceData.getTitle());
|
ListBuilder.ICON_IMAGE, sliceData.getTitle());
|
||||||
@@ -299,17 +299,22 @@ public class SliceBuilderUtils {
|
|||||||
if (cur > sliderController.getMax()) {
|
if (cur > sliderController.getMax()) {
|
||||||
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)
|
return new ListBuilder(context, sliceData.getUri(), ListBuilder.INFINITY)
|
||||||
.setAccentColor(color)
|
.setAccentColor(color)
|
||||||
.addInputRange(new InputRangeBuilder()
|
.addInputRange(inputRangeBuilder)
|
||||||
.setTitle(sliceData.getTitle())
|
|
||||||
.setSubtitle(subtitleText)
|
|
||||||
.setPrimaryAction(primaryAction)
|
|
||||||
.setMax(sliderController.getMax())
|
|
||||||
.setMin(sliderController.getMin())
|
|
||||||
.setValue(cur)
|
|
||||||
.setInputAction(actionIntent))
|
|
||||||
.setKeywords(keywords)
|
.setKeywords(keywords)
|
||||||
.build();
|
.build();
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user