OSDN Git Service

Follow slice API finalization
authorJason Monk <jmonk@google.com>
Mon, 6 Aug 2018 13:44:22 +0000 (09:44 -0400)
committerMady Mellor <madym@google.com>
Fri, 10 Aug 2018 00:03:33 +0000 (17:03 -0700)
Test: build
Change-Id: I5671b180a949d5038f9a73caf84a6d266ef90cfa

src/com/android/settings/bluetooth/BluetoothSliceBuilder.java
src/com/android/settings/flashlight/FlashlightSliceBuilder.java
src/com/android/settings/location/LocationSliceBuilder.java
src/com/android/settings/mobilenetwork/Enhanced4gLteSliceHelper.java
src/com/android/settings/notification/ZenModeSliceBuilder.java
src/com/android/settings/slices/SliceBuilderUtils.java
src/com/android/settings/wifi/WifiSliceBuilder.java
src/com/android/settings/wifi/calling/WifiCallingSliceHelper.java
tests/robotests/src/com/android/settings/slices/SettingsSliceProviderTest.java
tests/robotests/src/com/android/settings/slices/SliceBuilderUtilsTest.java

index 7a56994..3c2f1b8 100644 (file)
@@ -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))
index a689fd2..d4309ca 100644 (file)
@@ -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(
index cbdf7f0..4883ee8 100644 (file)
@@ -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))
index f8f1447..960a082 100644 (file)
@@ -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(
index ad39d71..dcdf6ef 100644 (file)
@@ -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))
index c1c3b8e..b613ca4 100644 (file)
@@ -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)
index a7bf16a..f6628a0 100644 (file)
@@ -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)
index f9014b7..baf2a97 100644 (file)
@@ -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(
index ea2f2ca..3cb502e 100644 (file)
@@ -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);
index b96c128..48489f9 100644 (file)
@@ -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;