Add keywords to Slices
Attach the keywords used for Settings search to Slices. Their primary use is helping match synonyms for presenters which display slices without explicit Uri requests, like a launcher. This changes: - Updates database scheme - Adds to SliceData object - Grab keywords in the SliceDataConverter - Set keywords on all slices Test: robotests Change-Id: I16c40d2380ffddaf0a87fb1b9cd58e95573b308f Fixes: 78306195
This commit is contained in:
@@ -29,6 +29,7 @@ import static com.google.common.truth.Truth.assertThat;
|
||||
import android.app.PendingIntent;
|
||||
import android.content.Context;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
import androidx.slice.Slice;
|
||||
@@ -55,6 +56,7 @@ public class SliceTester {
|
||||
* - No toggles
|
||||
* - Correct intent
|
||||
* - Correct title
|
||||
* - Correct keywords
|
||||
*/
|
||||
public static void testSettingsIntentSlice(Context context, Slice slice, SliceData sliceData) {
|
||||
final SliceMetadata metadata = SliceMetadata.from(context, slice);
|
||||
@@ -68,6 +70,8 @@ public class SliceTester {
|
||||
|
||||
final List<SliceItem> sliceItems = slice.getItems();
|
||||
assertTitle(sliceItems, sliceData.getTitle());
|
||||
|
||||
assertKeywords(metadata, sliceData);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -76,6 +80,7 @@ public class SliceTester {
|
||||
* - Correct toggle intent
|
||||
* - Correct content intent
|
||||
* - Correct title
|
||||
* - Correct keywords
|
||||
*/
|
||||
public static void testSettingsToggleSlice(Context context, Slice slice, SliceData sliceData) {
|
||||
final SliceMetadata metadata = SliceMetadata.from(context, slice);
|
||||
@@ -101,12 +106,15 @@ public class SliceTester {
|
||||
|
||||
final List<SliceItem> sliceItems = slice.getItems();
|
||||
assertTitle(sliceItems, sliceData.getTitle());
|
||||
|
||||
assertKeywords(metadata, sliceData);
|
||||
}
|
||||
|
||||
/**
|
||||
* Test the contents of an slider based slice, including:
|
||||
* - No intent
|
||||
* - Correct title
|
||||
* - Correct keywords
|
||||
*/
|
||||
public static void testSettingsSliderSlice(Context context, Slice slice, SliceData sliceData) {
|
||||
final SliceMetadata metadata = SliceMetadata.from(context, slice);
|
||||
@@ -121,6 +129,8 @@ public class SliceTester {
|
||||
|
||||
final List<SliceItem> sliceItems = slice.getItems();
|
||||
assertTitle(sliceItems, sliceData.getTitle());
|
||||
|
||||
assertKeywords(metadata, sliceData);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -128,6 +138,7 @@ public class SliceTester {
|
||||
* - No toggles
|
||||
* - Correct title
|
||||
* - Correct intent
|
||||
* - Correct keywords
|
||||
*/
|
||||
public static void testSettingsUnavailableSlice(Context context, Slice slice,
|
||||
SliceData sliceData) {
|
||||
@@ -154,6 +165,8 @@ public class SliceTester {
|
||||
|
||||
final List<SliceItem> sliceItems = slice.getItems();
|
||||
assertTitle(sliceItems, sliceData.getTitle());
|
||||
|
||||
assertKeywords(metadata, sliceData);
|
||||
}
|
||||
|
||||
private static void assertTitle(List<SliceItem> sliceItems, String title) {
|
||||
@@ -172,4 +185,10 @@ public class SliceTester {
|
||||
}
|
||||
assertThat(hasTitle).isTrue();
|
||||
}
|
||||
|
||||
private static void assertKeywords(SliceMetadata metadata, SliceData data) {
|
||||
final List<String> keywords = metadata.getSliceKeywords();
|
||||
final List<String> expectedKeywords = Arrays.asList(data.getKeywords().split(","));
|
||||
assertThat(keywords).containsExactlyElementsIn(expectedKeywords);
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user