Remove the Settings search keywords from Slices
The keywords used for settings search are good when we are highly confident the user is searching for as setting (settings search), but not effective in a more general search setting (launcher, an assistant). Thus, we should not index these keywords as Slice keywords, and rely on the setting title and screen title as baseline keywords. Change-Id: I99e44834454b5949c4883f877e02be47498e06e2 Fixes: 78911847 Test: robotests
This commit is contained in:
@@ -238,7 +238,7 @@ public class SliceBuilderUtils {
|
||||
(TogglePreferenceController) controller;
|
||||
final SliceAction sliceAction = getToggleAction(context, sliceData,
|
||||
toggleController.isChecked());
|
||||
final List<String> keywords = buildSliceKeywords(sliceData.getKeywords());
|
||||
final List<String> keywords = buildSliceKeywords(sliceData);
|
||||
|
||||
return new ListBuilder(context, sliceData.getUri(), SLICE_TTL_MILLIS)
|
||||
.addRow(rowBuilder -> rowBuilder
|
||||
@@ -256,7 +256,7 @@ public class SliceBuilderUtils {
|
||||
final PendingIntent contentIntent = getContentPendingIntent(context, sliceData);
|
||||
final IconCompat icon = IconCompat.createWithResource(context, sliceData.getIconResource());
|
||||
final CharSequence subtitleText = getSubtitleText(context, controller, sliceData);
|
||||
final List<String> keywords = buildSliceKeywords(sliceData.getKeywords());
|
||||
final List<String> keywords = buildSliceKeywords(sliceData);
|
||||
|
||||
return new ListBuilder(context, sliceData.getUri(), SLICE_TTL_MILLIS)
|
||||
.addRow(rowBuilder -> rowBuilder
|
||||
@@ -276,7 +276,7 @@ public class SliceBuilderUtils {
|
||||
final IconCompat icon = IconCompat.createWithResource(context, sliceData.getIconResource());
|
||||
final SliceAction primaryAction = new SliceAction(contentIntent, icon,
|
||||
sliceData.getTitle());
|
||||
final List<String> keywords = buildSliceKeywords(sliceData.getKeywords());
|
||||
final List<String> keywords = buildSliceKeywords(sliceData);
|
||||
|
||||
return new ListBuilder(context, sliceData.getUri(), SLICE_TTL_MILLIS)
|
||||
.addInputRange(builder -> builder
|
||||
@@ -324,19 +324,28 @@ public class SliceBuilderUtils {
|
||||
|| TextUtils.equals(summary, doublePlaceHolder));
|
||||
}
|
||||
|
||||
private static List<String> buildSliceKeywords(String keywordString) {
|
||||
if (keywordString == null) {
|
||||
return new ArrayList<>();
|
||||
private static List<String> buildSliceKeywords(SliceData data) {
|
||||
final List<String> keywords = new ArrayList<>();
|
||||
|
||||
keywords.add(data.getTitle());
|
||||
|
||||
if (!TextUtils.equals(data.getTitle(), data.getScreenTitle())) {
|
||||
keywords.add(data.getScreenTitle().toString());
|
||||
}
|
||||
|
||||
final String[] keywords = keywordString.split(",");
|
||||
return Arrays.asList(keywords);
|
||||
final String keywordString = data.getKeywords();
|
||||
if (keywordString != null) {
|
||||
final String[] keywordArray = keywordString.split(",");
|
||||
keywords.addAll(Arrays.asList(keywordArray));
|
||||
}
|
||||
|
||||
return keywords;
|
||||
}
|
||||
|
||||
private static Slice buildUnavailableSlice(Context context, SliceData data,
|
||||
BasePreferenceController controller) {
|
||||
final String title = data.getTitle();
|
||||
final List<String> keywords = buildSliceKeywords(data.getKeywords());
|
||||
final List<String> keywords = buildSliceKeywords(data);
|
||||
final String summary;
|
||||
final SliceAction primaryAction;
|
||||
final IconCompat icon = IconCompat.createWithResource(context, data.getIconResource());
|
||||
|
Reference in New Issue
Block a user