Merge "Remove the Settings search keywords from Slices" into pi-dev
am: 26453818b9
Change-Id: I9dbc077c72a0ca4b29364f7eea39d3e4f82f1fdb
This commit is contained in:
@@ -42,7 +42,6 @@ import com.android.settingslib.utils.ThreadUtils;
|
|||||||
import java.net.URISyntaxException;
|
import java.net.URISyntaxException;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.WeakHashMap;
|
import java.util.WeakHashMap;
|
||||||
|
@@ -238,7 +238,7 @@ public class SliceBuilderUtils {
|
|||||||
(TogglePreferenceController) controller;
|
(TogglePreferenceController) controller;
|
||||||
final SliceAction sliceAction = getToggleAction(context, sliceData,
|
final SliceAction sliceAction = getToggleAction(context, sliceData,
|
||||||
toggleController.isChecked());
|
toggleController.isChecked());
|
||||||
final List<String> keywords = buildSliceKeywords(sliceData.getKeywords());
|
final List<String> keywords = buildSliceKeywords(sliceData);
|
||||||
|
|
||||||
return new ListBuilder(context, sliceData.getUri(), SLICE_TTL_MILLIS)
|
return new ListBuilder(context, sliceData.getUri(), SLICE_TTL_MILLIS)
|
||||||
.addRow(rowBuilder -> rowBuilder
|
.addRow(rowBuilder -> rowBuilder
|
||||||
@@ -256,7 +256,7 @@ public class SliceBuilderUtils {
|
|||||||
final PendingIntent contentIntent = getContentPendingIntent(context, sliceData);
|
final PendingIntent contentIntent = getContentPendingIntent(context, sliceData);
|
||||||
final IconCompat icon = IconCompat.createWithResource(context, sliceData.getIconResource());
|
final IconCompat icon = IconCompat.createWithResource(context, sliceData.getIconResource());
|
||||||
final CharSequence subtitleText = getSubtitleText(context, controller, sliceData);
|
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)
|
return new ListBuilder(context, sliceData.getUri(), SLICE_TTL_MILLIS)
|
||||||
.addRow(rowBuilder -> rowBuilder
|
.addRow(rowBuilder -> rowBuilder
|
||||||
@@ -276,7 +276,7 @@ public class SliceBuilderUtils {
|
|||||||
final IconCompat icon = IconCompat.createWithResource(context, sliceData.getIconResource());
|
final IconCompat icon = IconCompat.createWithResource(context, sliceData.getIconResource());
|
||||||
final SliceAction primaryAction = new SliceAction(contentIntent, icon,
|
final SliceAction primaryAction = new SliceAction(contentIntent, icon,
|
||||||
sliceData.getTitle());
|
sliceData.getTitle());
|
||||||
final List<String> keywords = buildSliceKeywords(sliceData.getKeywords());
|
final List<String> keywords = buildSliceKeywords(sliceData);
|
||||||
|
|
||||||
return new ListBuilder(context, sliceData.getUri(), SLICE_TTL_MILLIS)
|
return new ListBuilder(context, sliceData.getUri(), SLICE_TTL_MILLIS)
|
||||||
.addInputRange(builder -> builder
|
.addInputRange(builder -> builder
|
||||||
@@ -324,19 +324,28 @@ public class SliceBuilderUtils {
|
|||||||
|| TextUtils.equals(summary, doublePlaceHolder));
|
|| TextUtils.equals(summary, doublePlaceHolder));
|
||||||
}
|
}
|
||||||
|
|
||||||
private static List<String> buildSliceKeywords(String keywordString) {
|
private static List<String> buildSliceKeywords(SliceData data) {
|
||||||
if (keywordString == null) {
|
final List<String> keywords = new ArrayList<>();
|
||||||
return new ArrayList<>();
|
|
||||||
|
keywords.add(data.getTitle());
|
||||||
|
|
||||||
|
if (!TextUtils.equals(data.getTitle(), data.getScreenTitle())) {
|
||||||
|
keywords.add(data.getScreenTitle().toString());
|
||||||
}
|
}
|
||||||
|
|
||||||
final String[] keywords = keywordString.split(",");
|
final String keywordString = data.getKeywords();
|
||||||
return Arrays.asList(keywords);
|
if (keywordString != null) {
|
||||||
|
final String[] keywordArray = keywordString.split(",");
|
||||||
|
keywords.addAll(Arrays.asList(keywordArray));
|
||||||
|
}
|
||||||
|
|
||||||
|
return keywords;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static Slice buildUnavailableSlice(Context context, SliceData data,
|
private static Slice buildUnavailableSlice(Context context, SliceData data,
|
||||||
BasePreferenceController controller) {
|
BasePreferenceController controller) {
|
||||||
final String title = data.getTitle();
|
final String title = data.getTitle();
|
||||||
final List<String> keywords = buildSliceKeywords(data.getKeywords());
|
final List<String> keywords = buildSliceKeywords(data);
|
||||||
final String summary;
|
final String summary;
|
||||||
final SliceAction primaryAction;
|
final SliceAction primaryAction;
|
||||||
final IconCompat icon = IconCompat.createWithResource(context, data.getIconResource());
|
final IconCompat icon = IconCompat.createWithResource(context, data.getIconResource());
|
||||||
|
@@ -185,7 +185,6 @@ class SliceDataConverter {
|
|||||||
| MetadataFlag.FLAG_NEED_PREF_TITLE
|
| MetadataFlag.FLAG_NEED_PREF_TITLE
|
||||||
| MetadataFlag.FLAG_NEED_PREF_ICON
|
| MetadataFlag.FLAG_NEED_PREF_ICON
|
||||||
| MetadataFlag.FLAG_NEED_PREF_SUMMARY
|
| MetadataFlag.FLAG_NEED_PREF_SUMMARY
|
||||||
| MetadataFlag.FLAG_NEED_KEYWORDS
|
|
||||||
| MetadataFlag.FLAG_NEED_PLATFORM_SLICE_FLAG);
|
| MetadataFlag.FLAG_NEED_PLATFORM_SLICE_FLAG);
|
||||||
|
|
||||||
for (Bundle bundle : metadata) {
|
for (Bundle bundle : metadata) {
|
||||||
@@ -198,7 +197,6 @@ class SliceDataConverter {
|
|||||||
final String key = bundle.getString(METADATA_KEY);
|
final String key = bundle.getString(METADATA_KEY);
|
||||||
final String title = bundle.getString(METADATA_TITLE);
|
final String title = bundle.getString(METADATA_TITLE);
|
||||||
final String summary = bundle.getString(METADATA_SUMMARY);
|
final String summary = bundle.getString(METADATA_SUMMARY);
|
||||||
final String keywords = bundle.getString(METADATA_KEYWORDS);
|
|
||||||
final int iconResId = bundle.getInt(METADATA_ICON);
|
final int iconResId = bundle.getInt(METADATA_ICON);
|
||||||
final int sliceType = SliceBuilderUtils.getSliceType(mContext, controllerClassName,
|
final int sliceType = SliceBuilderUtils.getSliceType(mContext, controllerClassName,
|
||||||
key);
|
key);
|
||||||
@@ -210,7 +208,6 @@ class SliceDataConverter {
|
|||||||
.setSummary(summary)
|
.setSummary(summary)
|
||||||
.setIcon(iconResId)
|
.setIcon(iconResId)
|
||||||
.setScreenTitle(screenTitle)
|
.setScreenTitle(screenTitle)
|
||||||
.setKeywords(keywords)
|
|
||||||
.setPreferenceControllerClassName(controllerClassName)
|
.setPreferenceControllerClassName(controllerClassName)
|
||||||
.setFragmentName(fragmentName)
|
.setFragmentName(fragmentName)
|
||||||
.setSliceType(sliceType)
|
.setSliceType(sliceType)
|
||||||
|
@@ -56,7 +56,6 @@ public class SliceDataConverterTest {
|
|||||||
private static final String FAKE_TITLE = "title";
|
private static final String FAKE_TITLE = "title";
|
||||||
private static final String FAKE_SUMMARY = "summary";
|
private static final String FAKE_SUMMARY = "summary";
|
||||||
private static final String FAKE_SCREEN_TITLE = "screen_title";
|
private static final String FAKE_SCREEN_TITLE = "screen_title";
|
||||||
private static final String FAKE_KEYWORDS = "a, b, c";
|
|
||||||
private static final String FAKE_FRAGMENT_CLASSNAME = FakeIndexProvider.class.getName();
|
private static final String FAKE_FRAGMENT_CLASSNAME = FakeIndexProvider.class.getName();
|
||||||
private static final String FAKE_CONTROLLER_NAME = FakePreferenceController.class.getName();
|
private static final String FAKE_CONTROLLER_NAME = FakePreferenceController.class.getName();
|
||||||
private static final String ACCESSIBILITY_FRAGMENT = AccessibilitySettings.class.getName();
|
private static final String ACCESSIBILITY_FRAGMENT = AccessibilitySettings.class.getName();
|
||||||
@@ -118,7 +117,7 @@ public class SliceDataConverterTest {
|
|||||||
assertThat(fakeSlice.getTitle()).isEqualTo(FAKE_TITLE);
|
assertThat(fakeSlice.getTitle()).isEqualTo(FAKE_TITLE);
|
||||||
assertThat(fakeSlice.getSummary()).isEqualTo(FAKE_SUMMARY);
|
assertThat(fakeSlice.getSummary()).isEqualTo(FAKE_SUMMARY);
|
||||||
assertThat(fakeSlice.getScreenTitle()).isEqualTo(FAKE_SCREEN_TITLE);
|
assertThat(fakeSlice.getScreenTitle()).isEqualTo(FAKE_SCREEN_TITLE);
|
||||||
assertThat(fakeSlice.getKeywords()).isEqualTo(FAKE_KEYWORDS);
|
assertThat(fakeSlice.getKeywords()).isNull();
|
||||||
assertThat(fakeSlice.getIconResource()).isNotNull();
|
assertThat(fakeSlice.getIconResource()).isNotNull();
|
||||||
assertThat(fakeSlice.getUri()).isNull();
|
assertThat(fakeSlice.getUri()).isNull();
|
||||||
assertThat(fakeSlice.getFragmentClassName()).isEqualTo(FAKE_FRAGMENT_CLASSNAME);
|
assertThat(fakeSlice.getFragmentClassName()).isEqualTo(FAKE_FRAGMENT_CLASSNAME);
|
||||||
|
@@ -30,7 +30,9 @@ import android.app.PendingIntent;
|
|||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
|
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
|
import java.util.HashSet;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
import androidx.slice.Slice;
|
import androidx.slice.Slice;
|
||||||
import androidx.slice.SliceItem;
|
import androidx.slice.SliceItem;
|
||||||
@@ -188,7 +190,10 @@ public class SliceTester {
|
|||||||
|
|
||||||
private static void assertKeywords(SliceMetadata metadata, SliceData data) {
|
private static void assertKeywords(SliceMetadata metadata, SliceData data) {
|
||||||
final List<String> keywords = metadata.getSliceKeywords();
|
final List<String> keywords = metadata.getSliceKeywords();
|
||||||
final List<String> expectedKeywords = Arrays.asList(data.getKeywords().split(","));
|
final Set<String> expectedKeywords = new HashSet<>(
|
||||||
|
Arrays.asList(data.getKeywords().split(",")));
|
||||||
|
expectedKeywords.add(data.getTitle());
|
||||||
|
expectedKeywords.add(data.getScreenTitle().toString());
|
||||||
assertThat(keywords).containsExactlyElementsIn(expectedKeywords);
|
assertThat(keywords).containsExactlyElementsIn(expectedKeywords);
|
||||||
}
|
}
|
||||||
}
|
}
|
Reference in New Issue
Block a user