Follow slice API finalization
Test: build Change-Id: I5671b180a949d5038f9a73caf84a6d266ef90cfa
This commit is contained in:
@@ -37,6 +37,7 @@ import com.android.settings.slices.SliceBuilderUtils;
|
||||
import androidx.core.graphics.drawable.IconCompat;
|
||||
import androidx.slice.Slice;
|
||||
import androidx.slice.builders.ListBuilder;
|
||||
import androidx.slice.builders.ListBuilder.RowBuilder;
|
||||
import androidx.slice.builders.SliceAction;
|
||||
|
||||
/**
|
||||
@@ -93,7 +94,7 @@ public class BluetoothSliceBuilder {
|
||||
|
||||
return new ListBuilder(context, BLUETOOTH_URI, ListBuilder.INFINITY)
|
||||
.setAccentColor(color)
|
||||
.addRow(b -> b
|
||||
.addRow(new RowBuilder()
|
||||
.setTitle(title)
|
||||
.addEndItem(toggleSliceAction)
|
||||
.setPrimaryAction(primarySliceAction))
|
||||
|
@@ -42,6 +42,7 @@ import com.android.settings.slices.SliceBroadcastReceiver;
|
||||
import androidx.core.graphics.drawable.IconCompat;
|
||||
import androidx.slice.Slice;
|
||||
import androidx.slice.builders.ListBuilder;
|
||||
import androidx.slice.builders.ListBuilder.RowBuilder;
|
||||
import androidx.slice.builders.SliceAction;
|
||||
|
||||
|
||||
@@ -93,7 +94,7 @@ public class FlashlightSliceBuilder {
|
||||
IconCompat.createWithResource(context, R.drawable.ic_signal_flashlight);
|
||||
return new ListBuilder(context, FLASHLIGHT_URI, ListBuilder.INFINITY)
|
||||
.setAccentColor(color)
|
||||
.addRow(b -> b
|
||||
.addRow(new RowBuilder()
|
||||
.setTitle(context.getText(R.string.power_flashlight))
|
||||
.setTitleItem(icon, ICON_IMAGE)
|
||||
.setPrimaryAction(
|
||||
|
@@ -37,6 +37,7 @@ import com.android.settings.slices.SliceBuilderUtils;
|
||||
import androidx.core.graphics.drawable.IconCompat;
|
||||
import androidx.slice.Slice;
|
||||
import androidx.slice.builders.ListBuilder;
|
||||
import androidx.slice.builders.ListBuilder.RowBuilder;
|
||||
import androidx.slice.builders.SliceAction;
|
||||
|
||||
/**
|
||||
@@ -70,7 +71,7 @@ public class LocationSliceBuilder {
|
||||
|
||||
return new ListBuilder(context, LOCATION_URI, ListBuilder.INFINITY)
|
||||
.setAccentColor(color)
|
||||
.addRow(b -> b
|
||||
.addRow(new RowBuilder()
|
||||
.setTitle(title)
|
||||
.setTitleItem(icon, ICON_IMAGE)
|
||||
.setPrimaryAction(primarySliceAction))
|
||||
|
@@ -49,6 +49,7 @@ import androidx.annotation.VisibleForTesting;
|
||||
import androidx.core.graphics.drawable.IconCompat;
|
||||
import androidx.slice.Slice;
|
||||
import androidx.slice.builders.ListBuilder;
|
||||
import androidx.slice.builders.ListBuilder.RowBuilder;
|
||||
import androidx.slice.builders.SliceAction;
|
||||
|
||||
/**
|
||||
@@ -183,7 +184,7 @@ public class Enhanced4gLteSliceHelper {
|
||||
|
||||
return new ListBuilder(mContext, sliceUri, ListBuilder.INFINITY)
|
||||
.setAccentColor(Utils.getColorAccentDefaultColor(mContext))
|
||||
.addRow(b -> b
|
||||
.addRow(new RowBuilder()
|
||||
.setTitle(getEnhanced4glteModeTitle(subId))
|
||||
.addEndItem(
|
||||
new SliceAction(
|
||||
|
@@ -40,6 +40,7 @@ import com.android.settings.slices.SliceBuilderUtils;
|
||||
import androidx.core.graphics.drawable.IconCompat;
|
||||
import androidx.slice.Slice;
|
||||
import androidx.slice.builders.ListBuilder;
|
||||
import androidx.slice.builders.ListBuilder.RowBuilder;
|
||||
import androidx.slice.builders.SliceAction;
|
||||
|
||||
public class ZenModeSliceBuilder {
|
||||
@@ -94,7 +95,7 @@ public class ZenModeSliceBuilder {
|
||||
|
||||
return new ListBuilder(context, ZEN_MODE_URI, ListBuilder.INFINITY)
|
||||
.setAccentColor(color)
|
||||
.addRow(b -> b
|
||||
.addRow(new RowBuilder()
|
||||
.setTitle(title)
|
||||
.addEndItem(toggleSliceAction)
|
||||
.setPrimaryAction(primarySliceAction))
|
||||
|
@@ -29,6 +29,7 @@ import android.net.Uri;
|
||||
import android.os.Bundle;
|
||||
import android.provider.SettingsSlicesContract;
|
||||
import android.text.TextUtils;
|
||||
import android.util.ArraySet;
|
||||
import android.util.Log;
|
||||
import android.util.Pair;
|
||||
|
||||
@@ -47,12 +48,15 @@ import com.android.settingslib.core.AbstractPreferenceController;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import androidx.annotation.VisibleForTesting;
|
||||
import androidx.core.graphics.drawable.IconCompat;
|
||||
import androidx.slice.Slice;
|
||||
import androidx.slice.builders.ListBuilder;
|
||||
import androidx.slice.builders.ListBuilder.InputRangeBuilder;
|
||||
import androidx.slice.builders.ListBuilder.RowBuilder;
|
||||
import androidx.slice.builders.SliceAction;
|
||||
|
||||
|
||||
@@ -250,11 +254,11 @@ public class SliceBuilderUtils {
|
||||
(TogglePreferenceController) controller;
|
||||
final SliceAction sliceAction = getToggleAction(context, sliceData,
|
||||
toggleController.isChecked());
|
||||
final List<String> keywords = buildSliceKeywords(sliceData);
|
||||
final Set<String> keywords = buildSliceKeywords(sliceData);
|
||||
|
||||
return new ListBuilder(context, sliceData.getUri(), ListBuilder.INFINITY)
|
||||
.setAccentColor(color)
|
||||
.addRow(rowBuilder -> rowBuilder
|
||||
.addRow(new RowBuilder()
|
||||
.setTitle(sliceData.getTitle())
|
||||
.setSubtitle(subtitleText)
|
||||
.setPrimaryAction(
|
||||
@@ -270,11 +274,11 @@ public class SliceBuilderUtils {
|
||||
final IconCompat icon = getSafeIcon(context, sliceData);
|
||||
final CharSequence subtitleText = getSubtitleText(context, controller, sliceData);
|
||||
@ColorInt final int color = Utils.getColorAccentDefaultColor(context);
|
||||
final List<String> keywords = buildSliceKeywords(sliceData);
|
||||
final Set<String> keywords = buildSliceKeywords(sliceData);
|
||||
|
||||
return new ListBuilder(context, sliceData.getUri(), ListBuilder.INFINITY)
|
||||
.setAccentColor(color)
|
||||
.addRow(rowBuilder -> rowBuilder
|
||||
.addRow(new RowBuilder()
|
||||
.setTitle(sliceData.getTitle())
|
||||
.setSubtitle(subtitleText)
|
||||
.setPrimaryAction(
|
||||
@@ -293,11 +297,11 @@ public class SliceBuilderUtils {
|
||||
final CharSequence subtitleText = getSubtitleText(context, controller, sliceData);
|
||||
final SliceAction primaryAction = new SliceAction(contentIntent, icon,
|
||||
sliceData.getTitle());
|
||||
final List<String> keywords = buildSliceKeywords(sliceData);
|
||||
final Set<String> keywords = buildSliceKeywords(sliceData);
|
||||
|
||||
return new ListBuilder(context, sliceData.getUri(), ListBuilder.INFINITY)
|
||||
.setAccentColor(color)
|
||||
.addInputRange(builder -> builder
|
||||
.addInputRange(new InputRangeBuilder()
|
||||
.setTitle(sliceData.getTitle())
|
||||
.setSubtitle(subtitleText)
|
||||
.setPrimaryAction(primaryAction)
|
||||
@@ -343,8 +347,8 @@ public class SliceBuilderUtils {
|
||||
|| TextUtils.equals(summary, doublePlaceHolder));
|
||||
}
|
||||
|
||||
private static List<String> buildSliceKeywords(SliceData data) {
|
||||
final List<String> keywords = new ArrayList<>();
|
||||
private static Set<String> buildSliceKeywords(SliceData data) {
|
||||
final Set<String> keywords = new ArraySet<>();
|
||||
|
||||
keywords.add(data.getTitle());
|
||||
|
||||
@@ -366,7 +370,7 @@ public class SliceBuilderUtils {
|
||||
|
||||
private static Slice buildUnavailableSlice(Context context, SliceData data) {
|
||||
final String title = data.getTitle();
|
||||
final List<String> keywords = buildSliceKeywords(data);
|
||||
final Set<String> keywords = buildSliceKeywords(data);
|
||||
@ColorInt final int color = Utils.getColorAccentDefaultColor(context);
|
||||
final CharSequence summary = context.getText(R.string.disabled_dependent_setting_summary);
|
||||
final IconCompat icon = IconCompat.createWithResource(context, data.getIconResource());
|
||||
@@ -375,9 +379,9 @@ public class SliceBuilderUtils {
|
||||
|
||||
return new ListBuilder(context, data.getUri(), ListBuilder.INFINITY)
|
||||
.setAccentColor(color)
|
||||
.addRow(builder -> builder
|
||||
.addRow(new RowBuilder()
|
||||
.setTitle(title)
|
||||
.setTitleItem(icon)
|
||||
.setTitleItem(icon, ListBuilder.SMALL_IMAGE)
|
||||
.setSubtitle(summary)
|
||||
.setPrimaryAction(primaryAction))
|
||||
.setKeywords(keywords)
|
||||
|
@@ -42,6 +42,7 @@ import com.android.settings.slices.SliceBuilderUtils;
|
||||
import androidx.core.graphics.drawable.IconCompat;
|
||||
import androidx.slice.Slice;
|
||||
import androidx.slice.builders.ListBuilder;
|
||||
import androidx.slice.builders.ListBuilder.RowBuilder;
|
||||
import androidx.slice.builders.SliceAction;
|
||||
|
||||
/**
|
||||
@@ -95,7 +96,7 @@ public class WifiSliceBuilder {
|
||||
|
||||
return new ListBuilder(context, WIFI_URI, ListBuilder.INFINITY)
|
||||
.setAccentColor(color)
|
||||
.addRow(b -> b
|
||||
.addRow(new RowBuilder()
|
||||
.setTitle(title)
|
||||
.setSubtitle(summary)
|
||||
.addEndItem(toggleSliceAction)
|
||||
|
@@ -209,7 +209,7 @@ public class WifiCallingSliceHelper {
|
||||
|
||||
return new ListBuilder(mContext, sliceUri, ListBuilder.INFINITY)
|
||||
.setAccentColor(Utils.getColorAccentDefaultColor(mContext))
|
||||
.addRow(b -> b
|
||||
.addRow(new RowBuilder()
|
||||
.setTitle(mContext.getText(R.string.wifi_calling_settings_title))
|
||||
.addEndItem(
|
||||
new SliceAction(
|
||||
@@ -298,7 +298,7 @@ public class WifiCallingSliceHelper {
|
||||
// Top row shows information on current preference state
|
||||
ListBuilder listBuilder = new ListBuilder(mContext, sliceUri, ListBuilder.INFINITY)
|
||||
.setAccentColor(Utils.getColorAccentDefaultColor(mContext));
|
||||
listBuilder.setHeader(new ListBuilder.HeaderBuilder(listBuilder)
|
||||
listBuilder.setHeader(new ListBuilder.HeaderBuilder()
|
||||
.setTitle(mContext.getText(R.string.wifi_calling_mode_title))
|
||||
.setSubtitle(getWifiCallingPreferenceSummary(currentWfcPref))
|
||||
.setPrimaryAction(new SliceAction(
|
||||
@@ -338,7 +338,7 @@ public class WifiCallingSliceHelper {
|
||||
int preferenceTitleResId, String action, boolean checked) {
|
||||
final IconCompat icon =
|
||||
IconCompat.createWithResource(mContext, R.drawable.radio_button_check);
|
||||
return new RowBuilder(listBuilder)
|
||||
return new RowBuilder()
|
||||
.setTitle(mContext.getText(preferenceTitleResId))
|
||||
.setTitleItem(new SliceAction(getBroadcastIntent(action),
|
||||
icon, mContext.getText(preferenceTitleResId), checked));
|
||||
@@ -488,7 +488,7 @@ public class WifiCallingSliceHelper {
|
||||
final IconCompat icon = IconCompat.createWithResource(mContext, R.drawable.wifi_signal);
|
||||
return new ListBuilder(mContext, sliceUri, ListBuilder.INFINITY)
|
||||
.setAccentColor(Utils.getColorAccentDefaultColor(mContext))
|
||||
.addRow(b -> b
|
||||
.addRow(new RowBuilder()
|
||||
.setTitle(title)
|
||||
.setSubtitle(subtitle)
|
||||
.setPrimaryAction(new SliceAction(
|
||||
|
@@ -66,6 +66,9 @@ import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
import androidx.slice.Slice;
|
||||
import androidx.slice.SliceProvider;
|
||||
import androidx.slice.widget.SliceLiveData;
|
||||
import com.android.settings.R;
|
||||
|
||||
/**
|
||||
* TODO Investigate using ShadowContentResolver.registerProviderInternal(String, ContentProvider)
|
||||
@@ -81,7 +84,7 @@ public class SettingsSliceProviderTest {
|
||||
private static final String SUMMARY = "summary";
|
||||
private static final String SCREEN_TITLE = "screen title";
|
||||
private static final String FRAGMENT_NAME = "fragment name";
|
||||
private static final int ICON = 1234; // I declare a thumb war
|
||||
private static final int ICON = R.drawable.ic_settings;
|
||||
private static final Uri URI = Uri.parse("content://com.android.settings.slices/test");
|
||||
private static final String PREF_CONTROLLER = FakeToggleController.class.getName();
|
||||
|
||||
@@ -117,6 +120,8 @@ public class SettingsSliceProviderTest {
|
||||
mManager = mock(SliceManager.class);
|
||||
when(mContext.getSystemService(SliceManager.class)).thenReturn(mManager);
|
||||
when(mManager.getPinnedSlices()).thenReturn(Collections.emptyList());
|
||||
|
||||
SliceProvider.setSpecs(SliceLiveData.SUPPORTED_SPECS);
|
||||
}
|
||||
|
||||
@After
|
||||
@@ -480,7 +485,7 @@ public class SettingsSliceProviderTest {
|
||||
values.put(SlicesDatabaseHelper.IndexColumns.TITLE, TITLE);
|
||||
values.put(SlicesDatabaseHelper.IndexColumns.SUMMARY, "s");
|
||||
values.put(SlicesDatabaseHelper.IndexColumns.SCREENTITLE, "s");
|
||||
values.put(SlicesDatabaseHelper.IndexColumns.ICON_RESOURCE, 1234);
|
||||
values.put(SlicesDatabaseHelper.IndexColumns.ICON_RESOURCE, R.drawable.ic_settings);
|
||||
values.put(SlicesDatabaseHelper.IndexColumns.FRAGMENT, "test");
|
||||
values.put(SlicesDatabaseHelper.IndexColumns.CONTROLLER, PREF_CONTROLLER);
|
||||
values.put(SlicesDatabaseHelper.IndexColumns.PLATFORM_SLICE, isPlatformSlice);
|
||||
|
@@ -64,7 +64,7 @@ public class SliceBuilderUtilsTest {
|
||||
private final String SCREEN_TITLE = "screen title";
|
||||
private final String KEYWORDS = "a, b, c";
|
||||
private final String FRAGMENT_NAME = "fragment name";
|
||||
private final int ICON = 1234; // I declare a thumb war
|
||||
private final int ICON = R.drawable.ic_settings;
|
||||
private final Uri URI = Uri.parse("content://com.android.settings.slices/test");
|
||||
private final Class TOGGLE_CONTROLLER = FakeToggleController.class;
|
||||
private final Class SLIDER_CONTROLLER = FakeSliderController.class;
|
||||
|
Reference in New Issue
Block a user