Merge "Simplify IndexData builder"

This commit is contained in:
TreeHugger Robot
2017-09-15 18:01:46 +00:00
committed by Android (Google) Code Review
8 changed files with 106 additions and 210 deletions

View File

@@ -362,4 +362,4 @@ public class DatabaseIndexingManager {
} }
} }
} }
} }

View File

@@ -17,16 +17,10 @@
package com.android.settings.search; package com.android.settings.search;
import android.Manifest;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
import android.net.Uri; import android.net.Uri;
import android.os.Bundle; import android.os.Bundle;
import android.text.TextUtils;
import android.util.ArrayMap; import android.util.ArrayMap;
import android.util.Log; import android.util.Log;
@@ -37,10 +31,8 @@ import com.android.settings.core.PreferenceControllerMixin;
import com.android.settingslib.core.AbstractPreferenceController; import com.android.settingslib.core.AbstractPreferenceController;
import java.lang.reflect.Field; import java.lang.reflect.Field;
import java.text.Normalizer;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.regex.Pattern;
/** /**
* Utility class for {@like DatabaseIndexingManager} to handle the mapping between Payloads * Utility class for {@like DatabaseIndexingManager} to handle the mapping between Payloads
@@ -53,15 +45,6 @@ public class DatabaseIndexingUtils {
private static final String FIELD_NAME_SEARCH_INDEX_DATA_PROVIDER = private static final String FIELD_NAME_SEARCH_INDEX_DATA_PROVIDER =
"SEARCH_INDEX_DATA_PROVIDER"; "SEARCH_INDEX_DATA_PROVIDER";
private static final String NON_BREAKING_HYPHEN = "\u2011";
private static final String EMPTY = "";
private static final String LIST_DELIMITERS = "[,]\\s*";
private static final String HYPHEN = "-";
private static final String SPACE = " ";
private static final Pattern REMOVE_DIACRITICALS_PATTERN
= Pattern.compile("\\p{InCombiningDiacriticalMarks}+");
/** /**
* Builds intent into a subsetting. * Builds intent into a subsetting.
*/ */
@@ -173,19 +156,4 @@ public class DatabaseIndexingUtils {
} }
return null; return null;
} }
public static String normalizeHyphen(String input) {
return (input != null) ? input.replaceAll(NON_BREAKING_HYPHEN, HYPHEN) : EMPTY;
}
public static String normalizeString(String input) {
final String nohyphen = (input != null) ? input.replaceAll(HYPHEN, EMPTY) : EMPTY;
final String normalized = Normalizer.normalize(nohyphen, Normalizer.Form.NFD);
return REMOVE_DIACRITICALS_PATTERN.matcher(normalized).replaceAll("").toLowerCase();
}
public static String normalizeKeywords(String input) {
return (input != null) ? input.replaceAll(LIST_DELIMITERS, SPACE) : EMPTY;
}
} }

View File

@@ -27,7 +27,9 @@ import com.android.settings.search.ResultPayload;
import com.android.settings.search.ResultPayloadUtils; import com.android.settings.search.ResultPayloadUtils;
import com.android.settings.search.SearchIndexableResources; import com.android.settings.search.SearchIndexableResources;
import java.text.Normalizer;
import java.util.Objects; import java.util.Objects;
import java.util.regex.Pattern;
/** /**
* Data class representing a single row in the Setting Search results database. * Data class representing a single row in the Setting Search results database.
@@ -38,14 +40,11 @@ public class IndexData {
public final String normalizedTitle; public final String normalizedTitle;
public final String updatedSummaryOn; public final String updatedSummaryOn;
public final String normalizedSummaryOn; public final String normalizedSummaryOn;
public final String updatedSummaryOff;
public final String normalizedSummaryOff;
public final String entries; public final String entries;
public final String className; public final String className;
public final String childClassName; public final String childClassName;
public final String screenTitle; public final String screenTitle;
public final int iconResId; public final int iconResId;
public final int rank;
public final String spaceDelimitedKeywords; public final String spaceDelimitedKeywords;
public final String intentAction; public final String intentAction;
public final String intentTargetPackage; public final String intentTargetPackage;
@@ -56,21 +55,28 @@ public class IndexData {
public final int payloadType; public final int payloadType;
public final byte[] payload; public final byte[] payload;
private static final String NON_BREAKING_HYPHEN = "\u2011";
private static final String EMPTY = "";
private static final String HYPHEN = "-";
private static final String SPACE = " ";
// Regex matching a comma, and any number of subsequent white spaces.
private static final String LIST_DELIMITERS = "[,]\\s*";
private static final Pattern REMOVE_DIACRITICALS_PATTERN
= Pattern.compile("\\p{InCombiningDiacriticalMarks}+");
private IndexData(Builder builder) { private IndexData(Builder builder) {
locale = builder.mLocale; locale = builder.mLocale;
updatedTitle = builder.mUpdatedTitle; updatedTitle = normalizeHyphen(builder.mTitle);
normalizedTitle = builder.mNormalizedTitle; normalizedTitle = normalizeString(builder.mTitle);
updatedSummaryOn = builder.mUpdatedSummaryOn; updatedSummaryOn = normalizeHyphen(builder.mSummaryOn);
normalizedSummaryOn = builder.mNormalizedSummaryOn; normalizedSummaryOn = normalizeString(builder.mSummaryOn);
updatedSummaryOff = builder.mUpdatedSummaryOff;
normalizedSummaryOff = builder.mNormalizedSummaryOff;
entries = builder.mEntries; entries = builder.mEntries;
className = builder.mClassName; className = builder.mClassName;
childClassName = builder.mChildClassName; childClassName = builder.mChildClassName;
screenTitle = builder.mScreenTitle; screenTitle = builder.mScreenTitle;
iconResId = builder.mIconResId; iconResId = builder.mIconResId;
rank = builder.mRank; spaceDelimitedKeywords = normalizeKeywords(builder.mKeywords);
spaceDelimitedKeywords = builder.mSpaceDelimitedKeywords;
intentAction = builder.mIntentAction; intentAction = builder.mIntentAction;
intentTargetPackage = builder.mIntentTargetPackage; intentTargetPackage = builder.mIntentTargetPackage;
intentTargetClass = builder.mIntentTargetClass; intentTargetClass = builder.mIntentTargetClass;
@@ -93,21 +99,49 @@ public class IndexData {
: key.hashCode(); : key.hashCode();
} }
@Override
public String toString() {
return new StringBuilder(updatedTitle)
.append(": ")
.append(updatedSummaryOn)
.toString();
}
/**
* In the list of keywords, replace the comma and all subsequent whitespace with a single space.
*/
public static String normalizeKeywords(String input) {
return (input != null) ? input.replaceAll(LIST_DELIMITERS, SPACE) : EMPTY;
}
/**
* @return {@param input} where all non-standard hyphens are replaced by normal hyphens.
*/
public static String normalizeHyphen(String input) {
return (input != null) ? input.replaceAll(NON_BREAKING_HYPHEN, HYPHEN) : EMPTY;
}
/**
* @return {@param input} with all hyphens removed, and all letters lower case.
*/
public static String normalizeString(String input) {
final String normalizedHypen = normalizeHyphen(input);
final String nohyphen = (input != null) ? normalizedHypen.replaceAll(HYPHEN, EMPTY) : EMPTY;
final String normalized = Normalizer.normalize(nohyphen, Normalizer.Form.NFD);
return REMOVE_DIACRITICALS_PATTERN.matcher(normalized).replaceAll("").toLowerCase();
}
public static class Builder { public static class Builder {
private String mLocale; private String mLocale;
private String mUpdatedTitle; private String mTitle;
private String mNormalizedTitle; private String mSummaryOn;
private String mUpdatedSummaryOn;
private String mNormalizedSummaryOn;
private String mUpdatedSummaryOff;
private String mNormalizedSummaryOff;
private String mEntries; private String mEntries;
private String mClassName; private String mClassName;
private String mChildClassName; private String mChildClassName;
private String mScreenTitle; private String mScreenTitle;
private int mIconResId; private int mIconResId;
private int mRank; private String mKeywords;
private String mSpaceDelimitedKeywords;
private String mIntentAction; private String mIntentAction;
private String mIntentTargetPackage; private String mIntentTargetPackage;
private String mIntentTargetClass; private String mIntentTargetClass;
@@ -123,33 +157,13 @@ public class IndexData {
return this; return this;
} }
public Builder setUpdatedTitle(String updatedTitle) { public Builder setTitle(String title) {
mUpdatedTitle = updatedTitle; mTitle = title;
return this; return this;
} }
public Builder setNormalizedTitle(String normalizedTitle) { public Builder setSummaryOn(String summaryOn) {
mNormalizedTitle = normalizedTitle; mSummaryOn = summaryOn;
return this;
}
public Builder setUpdatedSummaryOn(String updatedSummaryOn) {
mUpdatedSummaryOn = updatedSummaryOn;
return this;
}
public Builder setNormalizedSummaryOn(String normalizedSummaryOn) {
mNormalizedSummaryOn = normalizedSummaryOn;
return this;
}
public Builder setUpdatedSummaryOff(String updatedSummaryOff) {
mUpdatedSummaryOff = updatedSummaryOff;
return this;
}
public Builder setNormalizedSummaryOff(String normalizedSummaryOff) {
this.mNormalizedSummaryOff = normalizedSummaryOff;
return this; return this;
} }
@@ -178,13 +192,8 @@ public class IndexData {
return this; return this;
} }
public Builder setRank(int rank) { public Builder setKeywords(String keywords) {
mRank = rank; mKeywords = keywords;
return this;
}
public Builder setSpaceDelimitedKeywords(String spaceDelimitedKeywords) {
mSpaceDelimitedKeywords = spaceDelimitedKeywords;
return this; return this;
} }
@@ -260,8 +269,8 @@ public class IndexData {
boolean isEmptyIntentAction = TextUtils.isEmpty(mIntentAction); boolean isEmptyIntentAction = TextUtils.isEmpty(mIntentAction);
// No intent action is set, or the intent action is for a subsetting. // No intent action is set, or the intent action is for a subsetting.
if (isEmptyIntentAction if (isEmptyIntentAction
|| (!isEmptyIntentAction && TextUtils.equals(mIntentTargetPackage, || TextUtils.equals(mIntentTargetPackage,
SearchIndexableResources.SUBSETTING_TARGET_PACKAGE))) { SearchIndexableResources.SUBSETTING_TARGET_PACKAGE)) {
// Action is null, we will launch it as a sub-setting // Action is null, we will launch it as a sub-setting
intent = DatabaseIndexingUtils.buildSubsettingIntent(context, mClassName, mKey, intent = DatabaseIndexingUtils.buildSubsettingIntent(context, mClassName, mKey,
mScreenTitle); mScreenTitle);

View File

@@ -147,12 +147,14 @@ public class IndexDataConverter {
} }
IndexData.Builder builder = new IndexData.Builder(); IndexData.Builder builder = new IndexData.Builder();
builder.setLocale(localeStr) builder.setTitle(raw.title)
.setSummaryOn(raw.summaryOn)
.setLocale(localeStr)
.setEntries(raw.entries) .setEntries(raw.entries)
.setKeywords(raw.keywords)
.setClassName(raw.className) .setClassName(raw.className)
.setScreenTitle(raw.screenTitle) .setScreenTitle(raw.screenTitle)
.setIconResId(raw.iconResId) .setIconResId(raw.iconResId)
.setRank(raw.rank)
.setIntentAction(raw.intentAction) .setIntentAction(raw.intentAction)
.setIntentTargetPackage(raw.intentTargetPackage) .setIntentTargetPackage(raw.intentTargetPackage)
.setIntentTargetClass(raw.intentTargetClass) .setIntentTargetClass(raw.intentTargetClass)
@@ -160,8 +162,7 @@ public class IndexDataConverter {
.setKey(raw.key) .setKey(raw.key)
.setUserId(raw.userId); .setUserId(raw.userId);
updateOneRowWithFilteredData(builder, raw.title, raw.summaryOn, raw.summaryOff, updateOneRow(builder.build(mContext));
raw.keywords);
} }
@VisibleForTesting @VisibleForTesting
@@ -249,7 +250,6 @@ public class IndexDataConverter {
ResultPayload payload; ResultPayload payload;
boolean enabled; boolean enabled;
final String fragmentName = sir.className; final String fragmentName = sir.className;
final int rank = sir.rank;
final String intentAction = sir.intentAction; final String intentAction = sir.intentAction;
final String intentTargetPackage = sir.intentTargetPackage; final String intentTargetPackage = sir.intentTargetPackage;
final String intentTargetClass = sir.intentTargetClass; final String intentTargetClass = sir.intentTargetClass;
@@ -271,11 +271,12 @@ public class IndexDataConverter {
// TODO: Set payload type for header results // TODO: Set payload type for header results
IndexData.Builder headerBuilder = new IndexData.Builder(); IndexData.Builder headerBuilder = new IndexData.Builder();
headerBuilder.setLocale(localeStr) headerBuilder.setTitle(headerTitle)
.setEntries(null) .setSummaryOn(headerSummary)
.setKeywords(headerKeywords)
.setLocale(localeStr)
.setClassName(fragmentName) .setClassName(fragmentName)
.setScreenTitle(screenTitle) .setScreenTitle(screenTitle)
.setRank(rank)
.setIntentAction(intentAction) .setIntentAction(intentAction)
.setIntentTargetPackage(intentTargetPackage) .setIntentTargetPackage(intentTargetPackage)
.setIntentTargetClass(intentTargetClass) .setIntentTargetClass(intentTargetClass)
@@ -306,11 +307,12 @@ public class IndexDataConverter {
} }
builder = new IndexData.Builder(); builder = new IndexData.Builder();
builder.setLocale(localeStr) builder.setTitle(title)
.setLocale(localeStr)
.setKeywords(keywords)
.setClassName(fragmentName) .setClassName(fragmentName)
.setScreenTitle(screenTitle) .setScreenTitle(screenTitle)
.setIconResId(iconResId) .setIconResId(iconResId)
.setRank(rank)
.setIntentAction(intentAction) .setIntentAction(intentAction)
.setIntentTargetPackage(intentTargetPackage) .setIntentTargetPackage(intentTargetPackage)
.setIntentTargetClass(intentTargetClass) .setIntentTargetClass(intentTargetClass)
@@ -331,14 +333,17 @@ public class IndexDataConverter {
payload = DatabaseIndexingUtils.getPayloadFromUriMap(controllerUriMap, key); payload = DatabaseIndexingUtils.getPayloadFromUriMap(controllerUriMap, key);
childFragment = XmlParserUtils.getDataChildFragment(context, attrs); childFragment = XmlParserUtils.getDataChildFragment(context, attrs);
builder.setEntries(entries) builder.setSummaryOn(summary)
.setEntries(entries)
.setChildClassName(childFragment) .setChildClassName(childFragment)
.setPayload(payload); .setPayload(payload);
// Insert rows for the child nodes of PreferenceScreen // Insert rows for the child nodes of PreferenceScreen
updateOneRowWithFilteredData(builder, title, summary, updateOneRow(builder.build(mContext));
null /* summary off */, keywords);
} else { } else {
// TODO (b/33577327) We removed summary off here. We should check if we can
// merge this 'else' section with the one above. Put a break point to
// investigate.
String summaryOn = XmlParserUtils.getDataSummaryOn(context, attrs); String summaryOn = XmlParserUtils.getDataSummaryOn(context, attrs);
String summaryOff = XmlParserUtils.getDataSummaryOff(context, attrs); String summaryOff = XmlParserUtils.getDataSummaryOff(context, attrs);
@@ -346,15 +351,15 @@ public class IndexDataConverter {
summaryOn = XmlParserUtils.getDataSummary(context, attrs); summaryOn = XmlParserUtils.getDataSummary(context, attrs);
} }
updateOneRowWithFilteredData(builder, title, summaryOn, summaryOff, builder.setSummaryOn(summaryOn);
keywords);
updateOneRow(builder.build(mContext));
} }
} }
// The xml header's title does not match the title of one of the child settings. // The xml header's title does not match the title of one of the child settings.
if (isHeaderUnique) { if (isHeaderUnique) {
updateOneRowWithFilteredData(headerBuilder, headerTitle, headerSummary, updateOneRow(headerBuilder.build(mContext));
null /* summary off */, headerKeywords);
} }
} catch (XmlPullParserException e) { } catch (XmlPullParserException e) {
throw new RuntimeException("Error parsing PreferenceScreen", e); throw new RuntimeException("Error parsing PreferenceScreen", e);
@@ -394,8 +399,11 @@ public class IndexDataConverter {
boolean enabled = !nonIndexableKeys.contains(raw.key); boolean enabled = !nonIndexableKeys.contains(raw.key);
IndexData.Builder builder = new IndexData.Builder(); IndexData.Builder builder = new IndexData.Builder();
builder.setLocale(localeStr) builder.setTitle(raw.title)
.setSummaryOn(raw.summaryOn)
.setLocale(localeStr)
.setEntries(raw.entries) .setEntries(raw.entries)
.setKeywords(raw.keywords)
.setClassName(className) .setClassName(className)
.setScreenTitle(raw.screenTitle) .setScreenTitle(raw.screenTitle)
.setIconResId(raw.iconResId) .setIconResId(raw.iconResId)
@@ -406,8 +414,7 @@ public class IndexDataConverter {
.setKey(raw.key) .setKey(raw.key)
.setUserId(raw.userId); .setUserId(raw.userId);
updateOneRowWithFilteredData(builder, raw.title, raw.summaryOn, raw.summaryOff, updateOneRow(builder.build(mContext));
raw.keywords);
} }
} }
@@ -438,32 +445,6 @@ public class IndexDataConverter {
} }
} }
@VisibleForTesting
void updateOneRowWithFilteredData(IndexData.Builder builder,
String title, String summaryOn, String summaryOff, String keywords) {
final String updatedTitle = DatabaseIndexingUtils.normalizeHyphen(title);
final String updatedSummaryOn = DatabaseIndexingUtils.normalizeHyphen(summaryOn);
final String updatedSummaryOff = DatabaseIndexingUtils.normalizeHyphen(summaryOff);
final String normalizedTitle = DatabaseIndexingUtils.normalizeString(updatedTitle);
final String normalizedSummaryOn = DatabaseIndexingUtils.normalizeString(updatedSummaryOn);
final String normalizedSummaryOff = DatabaseIndexingUtils
.normalizeString(updatedSummaryOff);
final String spaceDelimitedKeywords = DatabaseIndexingUtils.normalizeKeywords(keywords);
builder.setUpdatedTitle(updatedTitle)
.setUpdatedSummaryOn(updatedSummaryOn)
.setUpdatedSummaryOff(updatedSummaryOff)
.setNormalizedTitle(normalizedTitle)
.setNormalizedSummaryOn(normalizedSummaryOn)
.setNormalizedSummaryOff(normalizedSummaryOff)
.setSpaceDelimitedKeywords(spaceDelimitedKeywords);
updateOneRow(builder.build(mContext));
}
private void updateOneRow(IndexData row) { private void updateOneRow(IndexData row) {
if (TextUtils.isEmpty(row.updatedTitle)) { if (TextUtils.isEmpty(row.updatedTitle)) {
return; return;
@@ -472,13 +453,10 @@ public class IndexDataConverter {
ContentValues values = new ContentValues(); ContentValues values = new ContentValues();
values.put(IndexDatabaseHelper.IndexColumns.DOCID, row.getDocId()); values.put(IndexDatabaseHelper.IndexColumns.DOCID, row.getDocId());
values.put(LOCALE, row.locale); values.put(LOCALE, row.locale);
values.put(DATA_RANK, row.rank);
values.put(DATA_TITLE, row.updatedTitle); values.put(DATA_TITLE, row.updatedTitle);
values.put(DATA_TITLE_NORMALIZED, row.normalizedTitle); values.put(DATA_TITLE_NORMALIZED, row.normalizedTitle);
values.put(DATA_SUMMARY_ON, row.updatedSummaryOn); values.put(DATA_SUMMARY_ON, row.updatedSummaryOn);
values.put(DATA_SUMMARY_ON_NORMALIZED, row.normalizedSummaryOn); values.put(DATA_SUMMARY_ON_NORMALIZED, row.normalizedSummaryOn);
values.put(DATA_SUMMARY_OFF, row.updatedSummaryOff);
values.put(DATA_SUMMARY_OFF_NORMALIZED, row.normalizedSummaryOff);
values.put(DATA_ENTRIES, row.entries); values.put(DATA_ENTRIES, row.entries);
values.put(DATA_KEYWORDS, row.spaceDelimitedKeywords); values.put(DATA_KEYWORDS, row.spaceDelimitedKeywords);
values.put(CLASS_NAME, row.className); values.put(CLASS_NAME, row.className);

View File

@@ -27,7 +27,6 @@ import static org.mockito.Mockito.doNothing;
import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.mock; import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.spy; import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify; import static org.mockito.Mockito.verify;
import android.content.ContentValues; import android.content.ContentValues;
@@ -287,6 +286,7 @@ public class DatabaseIndexingManagerTest {
@Test @Test
public void testLocaleUpdated_afterFullIndexing_localeAdded() { public void testLocaleUpdated_afterFullIndexing_localeAdded() {
mManager.performIndexing(); mManager.performIndexing();
assertThat(IndexDatabaseHelper.isLocaleAlreadyIndexed(mContext, localeStr)).isTrue(); assertThat(IndexDatabaseHelper.isLocaleAlreadyIndexed(mContext, localeStr)).isTrue();
} }
@@ -302,8 +302,6 @@ public class DatabaseIndexingManagerTest {
// Locale // Locale
assertThat(cursor.getString(0)).isEqualTo(localeStr); assertThat(cursor.getString(0)).isEqualTo(localeStr);
// Data Rank
assertThat(cursor.getInt(1)).isEqualTo(rank);
// Data Title // Data Title
assertThat(cursor.getString(2)).isEqualTo(updatedTitle); assertThat(cursor.getString(2)).isEqualTo(updatedTitle);
// Normalized Title // Normalized Title
@@ -312,10 +310,6 @@ public class DatabaseIndexingManagerTest {
assertThat(cursor.getString(4)).isEqualTo(updatedSummaryOn); assertThat(cursor.getString(4)).isEqualTo(updatedSummaryOn);
// Summary On Normalized // Summary On Normalized
assertThat(cursor.getString(5)).isEqualTo(normalizedSummaryOn); assertThat(cursor.getString(5)).isEqualTo(normalizedSummaryOn);
// Summary Off
assertThat(cursor.getString(6)).isEqualTo(updatedSummaryOff);
// Summary off normalized
assertThat(cursor.getString(7)).isEqualTo(normalizedSummaryOff);
// Entries // Entries
assertThat(cursor.getString(8)).isEqualTo(entries); assertThat(cursor.getString(8)).isEqualTo(entries);
// Keywords // Keywords

View File

@@ -24,6 +24,7 @@ import android.database.sqlite.SQLiteDatabase;
import com.android.settings.TestConfig; import com.android.settings.TestConfig;
import com.android.settings.dashboard.SiteMapManager; import com.android.settings.dashboard.SiteMapManager;
import com.android.settings.search.indexing.IndexData;
import com.android.settings.testutils.DatabaseTestUtils; import com.android.settings.testutils.DatabaseTestUtils;
import com.android.settings.testutils.FakeFeatureFactory; import com.android.settings.testutils.FakeFeatureFactory;
import com.android.settings.testutils.SettingsRobolectricTestRunner; import com.android.settings.testutils.SettingsRobolectricTestRunner;
@@ -227,8 +228,8 @@ public class DatabaseResultLoaderTest {
} }
private void insertSpecialCase(String specialCase) { private void insertSpecialCase(String specialCase) {
String normalized = DatabaseIndexingUtils.normalizeHyphen(specialCase); String normalized = IndexData.normalizeHyphen(specialCase);
normalized = DatabaseIndexingUtils.normalizeString(normalized); normalized = IndexData.normalizeString(normalized);
final ResultPayload payload = new ResultPayload(new Intent()); final ResultPayload payload = new ResultPayload(new Intent());
ContentValues values = new ContentValues(); ContentValues values = new ContentValues();

View File

@@ -54,7 +54,6 @@ public class IndexDataConverterTest {
private final String localeStr = "en_US"; private final String localeStr = "en_US";
private final int rank = 8;
private final String title = "title\u2011title"; private final String title = "title\u2011title";
private final String updatedTitle = "title-title"; private final String updatedTitle = "title-title";
private final String normalizedTitle = "titletitle"; private final String normalizedTitle = "titletitle";
@@ -128,8 +127,6 @@ public class IndexDataConverterTest {
// Locale // Locale
assertThat(cursor.getString(0)).isEqualTo(localeStr); assertThat(cursor.getString(0)).isEqualTo(localeStr);
// Data Rank
assertThat(cursor.getInt(1)).isEqualTo(raw.rank);
// Data Title // Data Title
assertThat(cursor.getString(2)).isEqualTo(updatedTitle); assertThat(cursor.getString(2)).isEqualTo(updatedTitle);
// Normalized Title // Normalized Title
@@ -138,10 +135,6 @@ public class IndexDataConverterTest {
assertThat(cursor.getString(4)).isEqualTo(updatedSummaryOn); assertThat(cursor.getString(4)).isEqualTo(updatedSummaryOn);
// Summary On Normalized // Summary On Normalized
assertThat(cursor.getString(5)).isEqualTo(normalizedSummaryOn); assertThat(cursor.getString(5)).isEqualTo(normalizedSummaryOn);
// Summary Off
assertThat(cursor.getString(6)).isEqualTo(updatedSummaryOff);
// Summary off normalized
assertThat(cursor.getString(7)).isEqualTo(normalizedSummaryOff);
// Entries // Entries
assertThat(cursor.getString(8)).isEqualTo(raw.entries); assertThat(cursor.getString(8)).isEqualTo(raw.entries);
// Keywords // Keywords
@@ -225,8 +218,6 @@ public class IndexDataConverterTest {
// Locale // Locale
assertThat(cursor.getString(0)).isEqualTo(localeStr); assertThat(cursor.getString(0)).isEqualTo(localeStr);
// Data Rank
assertThat(cursor.getInt(1)).isEqualTo(rank);
// Data Title // Data Title
assertThat(cursor.getString(2)).isEqualTo("App info"); assertThat(cursor.getString(2)).isEqualTo("App info");
// Normalized Title // Normalized Title
@@ -235,10 +226,6 @@ public class IndexDataConverterTest {
assertThat(cursor.getString(4)).isEqualTo("Manage apps, set up quick launch shortcuts"); assertThat(cursor.getString(4)).isEqualTo("Manage apps, set up quick launch shortcuts");
// Summary On Normalized // Summary On Normalized
assertThat(cursor.getString(5)).isEqualTo("manage apps, set up quick launch shortcuts"); assertThat(cursor.getString(5)).isEqualTo("manage apps, set up quick launch shortcuts");
// Summary Off - only on for checkbox preferences
assertThat(cursor.getString(6)).isEmpty();
// Summary off normalized - only on for checkbox preferences
assertThat(cursor.getString(7)).isEmpty();
// Entries - only on for list preferences // Entries - only on for list preferences
assertThat(cursor.getString(8)).isNull(); assertThat(cursor.getString(8)).isNull();
// Keywords // Keywords
@@ -285,8 +272,6 @@ public class IndexDataConverterTest {
// Locale // Locale
assertThat(cursor.getString(0)).isEqualTo(localeStr); assertThat(cursor.getString(0)).isEqualTo(localeStr);
// Data Rank
assertThat(cursor.getInt(1)).isEqualTo(rank);
// Data Title // Data Title
assertThat(cursor.getString(2)).isEqualTo(prefTitle); assertThat(cursor.getString(2)).isEqualTo(prefTitle);
// Normalized Title // Normalized Title
@@ -295,10 +280,6 @@ public class IndexDataConverterTest {
assertThat(cursor.getString(4)).isEqualTo(prefSummary); assertThat(cursor.getString(4)).isEqualTo(prefSummary);
// Summary On Normalized // Summary On Normalized
assertThat(cursor.getString(5)).isEqualTo(prefSummary.toLowerCase()); assertThat(cursor.getString(5)).isEqualTo(prefSummary.toLowerCase());
// Summary Off - only on for checkbox preferences
assertThat(cursor.getString(6)).isEmpty();
// Summary off normalized - only on for checkbox preferences
assertThat(cursor.getString(7)).isEmpty();
// Entries - only on for list preferences // Entries - only on for list preferences
assertThat(cursor.getString(8)).isNull(); assertThat(cursor.getString(8)).isNull();
// Keywords // Keywords
@@ -343,8 +324,6 @@ public class IndexDataConverterTest {
cursor.moveToPosition(0); cursor.moveToPosition(0);
// Locale // Locale
assertThat(cursor.getString(0)).isEqualTo(localeStr); assertThat(cursor.getString(0)).isEqualTo(localeStr);
// Data Rank
assertThat(cursor.getInt(1)).isEqualTo(rank);
// Data Title // Data Title
assertThat(cursor.getString(2)).isEqualTo("Advanced settings"); assertThat(cursor.getString(2)).isEqualTo("Advanced settings");
// Normalized Title // Normalized Title
@@ -353,10 +332,6 @@ public class IndexDataConverterTest {
assertThat(cursor.getString(4)).isEqualTo("Enable more settings options"); assertThat(cursor.getString(4)).isEqualTo("Enable more settings options");
// Summary On Normalized // Summary On Normalized
assertThat(cursor.getString(5)).isEqualTo("enable more settings options"); assertThat(cursor.getString(5)).isEqualTo("enable more settings options");
// Summary Off
assertThat(cursor.getString(6)).isEqualTo("Enable more settings options");
// Summary Off
assertThat(cursor.getString(7)).isEqualTo("enable more settings options");
// Entries - only on for list preferences // Entries - only on for list preferences
assertThat(cursor.getString(8)).isNull(); assertThat(cursor.getString(8)).isNull();
// Keywords // Keywords
@@ -397,8 +372,6 @@ public class IndexDataConverterTest {
cursor.moveToPosition(3); cursor.moveToPosition(3);
// Locale // Locale
assertThat(cursor.getString(0)).isEqualTo(localeStr); assertThat(cursor.getString(0)).isEqualTo(localeStr);
// Data Rank
assertThat(cursor.getInt(1)).isEqualTo(rank);
// Data Title // Data Title
assertThat(cursor.getString(2)).isEqualTo("Preferred install location"); assertThat(cursor.getString(2)).isEqualTo("Preferred install location");
// Normalized Title // Normalized Title
@@ -409,10 +382,6 @@ public class IndexDataConverterTest {
// Summary On Normalized // Summary On Normalized
assertThat(cursor.getString(5)).isEqualTo( assertThat(cursor.getString(5)).isEqualTo(
"change the preferred installation location for new apps"); "change the preferred installation location for new apps");
// Summary Off - only on for checkbox preferences
assertThat(cursor.getString(6)).isEmpty();
// Summary off normalized - only on for checkbox preferences
assertThat(cursor.getString(7)).isEmpty();
// Entries - only on for list preferences // Entries - only on for list preferences
assertThat(cursor.getString(8)).isEqualTo("Internal device storage|Removable SD card|" + assertThat(cursor.getString(8)).isEqualTo("Internal device storage|Removable SD card|" +
"Let the system decide|"); "Let the system decide|");
@@ -483,8 +452,6 @@ public class IndexDataConverterTest {
// Locale // Locale
assertThat(cursor.getString(0)).isEqualTo(localeStr); assertThat(cursor.getString(0)).isEqualTo(localeStr);
// Data Rank
assertThat(cursor.getInt(1)).isEqualTo(0);
// Data Title // Data Title
assertThat(cursor.getString(2)).isEqualTo("Display size"); assertThat(cursor.getString(2)).isEqualTo("Display size");
// Normalized Title // Normalized Title
@@ -493,10 +460,6 @@ public class IndexDataConverterTest {
assertThat(cursor.getString(4)).isEmpty(); assertThat(cursor.getString(4)).isEmpty();
// Summary On Normalized // Summary On Normalized
assertThat(cursor.getString(5)).isEmpty(); assertThat(cursor.getString(5)).isEmpty();
// Summary Off - only on for checkbox preferences
assertThat(cursor.getString(6)).isEmpty();
// Summary off normalized - only on for checkbox preferences
assertThat(cursor.getString(7)).isEmpty();
// Entries - only on for list preferences // Entries - only on for list preferences
assertThat(cursor.getString(8)).isNull(); assertThat(cursor.getString(8)).isNull();
// Keywords // Keywords
@@ -550,8 +513,6 @@ public class IndexDataConverterTest {
// Locale // Locale
assertThat(cursor.getString(0)).isEqualTo(localeStr); assertThat(cursor.getString(0)).isEqualTo(localeStr);
// Data Rank
assertThat(cursor.getInt(1)).isEqualTo(0);
// Data Title // Data Title
assertThat(cursor.getString(2)).isEqualTo("Display size"); assertThat(cursor.getString(2)).isEqualTo("Display size");
// Normalized Title // Normalized Title
@@ -560,10 +521,6 @@ public class IndexDataConverterTest {
assertThat(cursor.getString(4)).isEmpty(); assertThat(cursor.getString(4)).isEmpty();
// Summary On Normalized // Summary On Normalized
assertThat(cursor.getString(5)).isEmpty(); assertThat(cursor.getString(5)).isEmpty();
// Summary Off - only on for checkbox preferences
assertThat(cursor.getString(6)).isEmpty();
// Summary off normalized - only on for checkbox preferences
assertThat(cursor.getString(7)).isEmpty();
// Entries - only on for list preferences // Entries - only on for list preferences
assertThat(cursor.getString(8)).isNull(); assertThat(cursor.getString(8)).isNull();
// Keywords // Keywords
@@ -646,7 +603,6 @@ public class IndexDataConverterTest {
private SearchIndexableRaw getFakeRaw(String localeStr) { private SearchIndexableRaw getFakeRaw(String localeStr) {
SearchIndexableRaw data = new SearchIndexableRaw(mContext); SearchIndexableRaw data = new SearchIndexableRaw(mContext);
data.locale = new Locale(localeStr); data.locale = new Locale(localeStr);
data.rank = rank;
data.title = title; data.title = title;
data.summaryOn = summaryOn; data.summaryOn = summaryOn;
data.summaryOff = summaryOff; data.summaryOff = summaryOff;
@@ -667,7 +623,6 @@ public class IndexDataConverterTest {
private SearchIndexableResource getFakeResource(int xml) { private SearchIndexableResource getFakeResource(int xml) {
SearchIndexableResource sir = new SearchIndexableResource(mContext); SearchIndexableResource sir = new SearchIndexableResource(mContext);
sir.rank = rank;
sir.xmlResId = xml; sir.xmlResId = xml;
sir.className = className; sir.className = className;
sir.packageName = packageName; sir.packageName = packageName;

View File

@@ -41,17 +41,16 @@ public class IndexDataTest {
private IndexData.Builder mBuilder; private IndexData.Builder mBuilder;
private static final String LOCALE = "locale"; private static final String LOCALE = "locale";
private static final String UPDATED_TITLE = "updated title"; private static final String TITLE = "updated-title";
private static final String NORMALIZED_TITLE = "normal title"; private static final String NORM_TITLE = "updatedtitle";
private static final String UPDATED_SUMMARY_ON = "updated summary on"; private static final String SUMMARY_ON = "updated-summary-on";
private static final String NORMALIZED_SUMMARY_ON = "normalized summary on"; private static final String NORM_SUMMARY_ON = "updatedsummaryon";
private static final String UPDATED_SUMMARY_OFF = "updated summary off"; private static final String SUMMARY_OFF = "updated-summary-off";
private static final String NORMALIZED_SUMMARY_OFF = "normalized summary off"; private static final String NORM_SUMMARY_OFF = "updatedsummaryoff";
private static final String ENTRIES = "entries"; private static final String ENTRIES = "entries";
private static final String CLASS_NAME = "class name"; private static final String CLASS_NAME = "class name";
private static final String SCREEN_TITLE = "screen title"; private static final String SCREEN_TITLE = "screen title";
private static final int ICON_RES_ID = 0xff; private static final int ICON_RES_ID = 0xff;
private static final int RANK = 1;
private static final String SPACE_DELIMITED_KEYWORDS = "keywords"; private static final String SPACE_DELIMITED_KEYWORDS = "keywords";
private static final String INTENT_ACTION = "intent action"; private static final String INTENT_ACTION = "intent action";
private static final String INTENT_TARGET_PACKAGE = "target package"; private static final String INTENT_TARGET_PACKAGE = "target package";
@@ -79,17 +78,14 @@ public class IndexDataTest {
IndexData row = generateRow(); IndexData row = generateRow();
assertThat(row.locale).isEqualTo(LOCALE); assertThat(row.locale).isEqualTo(LOCALE);
assertThat(row.updatedTitle).isEqualTo(UPDATED_TITLE); assertThat(row.updatedTitle).isEqualTo(TITLE);
assertThat(row.normalizedTitle).isEqualTo(NORMALIZED_TITLE); assertThat(row.normalizedTitle).isEqualTo(NORM_TITLE);
assertThat(row.updatedSummaryOn).isEqualTo(UPDATED_SUMMARY_ON); assertThat(row.updatedSummaryOn).isEqualTo(SUMMARY_ON);
assertThat(row.normalizedSummaryOn).isEqualTo(NORMALIZED_SUMMARY_ON); assertThat(row.normalizedSummaryOn).isEqualTo(NORM_SUMMARY_ON);
assertThat(row.updatedSummaryOff).isEqualTo(UPDATED_SUMMARY_OFF);
assertThat(row.normalizedSummaryOff).isEqualTo(NORMALIZED_SUMMARY_OFF);
assertThat(row.entries).isEqualTo(ENTRIES); assertThat(row.entries).isEqualTo(ENTRIES);
assertThat(row.className).isEqualTo(CLASS_NAME); assertThat(row.className).isEqualTo(CLASS_NAME);
assertThat(row.screenTitle).isEqualTo(SCREEN_TITLE); assertThat(row.screenTitle).isEqualTo(SCREEN_TITLE);
assertThat(row.iconResId).isEqualTo(ICON_RES_ID); assertThat(row.iconResId).isEqualTo(ICON_RES_ID);
assertThat(row.rank).isEqualTo(RANK);
assertThat(row.spaceDelimitedKeywords).isEqualTo(SPACE_DELIMITED_KEYWORDS); assertThat(row.spaceDelimitedKeywords).isEqualTo(SPACE_DELIMITED_KEYWORDS);
assertThat(row.intentAction).isEqualTo(INTENT_ACTION); assertThat(row.intentAction).isEqualTo(INTENT_ACTION);
assertThat(row.intentTargetClass).isEqualTo(INTENT_TARGET_CLASS); assertThat(row.intentTargetClass).isEqualTo(INTENT_TARGET_CLASS);
@@ -153,18 +149,13 @@ public class IndexDataTest {
private IndexData.Builder createBuilder() { private IndexData.Builder createBuilder() {
mBuilder = new IndexData.Builder(); mBuilder = new IndexData.Builder();
mBuilder.setLocale(LOCALE) mBuilder.setLocale(LOCALE)
.setUpdatedTitle(UPDATED_TITLE) .setTitle(TITLE)
.setNormalizedTitle(NORMALIZED_TITLE) .setSummaryOn(SUMMARY_ON)
.setUpdatedSummaryOn(UPDATED_SUMMARY_ON)
.setNormalizedSummaryOn(NORMALIZED_SUMMARY_ON)
.setUpdatedSummaryOff(UPDATED_SUMMARY_OFF)
.setNormalizedSummaryOff(NORMALIZED_SUMMARY_OFF)
.setEntries(ENTRIES) .setEntries(ENTRIES)
.setClassName(CLASS_NAME) .setClassName(CLASS_NAME)
.setScreenTitle(SCREEN_TITLE) .setScreenTitle(SCREEN_TITLE)
.setIconResId(ICON_RES_ID) .setIconResId(ICON_RES_ID)
.setRank(RANK) .setKeywords(SPACE_DELIMITED_KEYWORDS)
.setSpaceDelimitedKeywords(SPACE_DELIMITED_KEYWORDS)
.setIntentAction(INTENT_ACTION) .setIntentAction(INTENT_ACTION)
.setIntentTargetPackage(INTENT_TARGET_PACKAGE) .setIntentTargetPackage(INTENT_TARGET_PACKAGE)
.setIntentTargetClass(INTENT_TARGET_CLASS) .setIntentTargetClass(INTENT_TARGET_CLASS)