Loading src/com/android/settings/search/DatabaseResultLoader.java +4 −15 Original line number Diff line number Diff line Loading @@ -20,8 +20,8 @@ package com.android.settings.search; import android.content.Context; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.support.annotation.VisibleForTesting; import android.text.TextUtils; import com.android.settings.dashboard.SiteMapManager; import com.android.settings.utils.AsyncLoader; Loading Loading @@ -97,7 +97,8 @@ public class DatabaseResultLoader extends AsyncLoader<Set<? extends SearchResult */ public static final int[] BASE_RANKS = {1, 3, 7, 9}; private final String mQueryText; @VisibleForTesting final String mQueryText; private final Context mContext; private final CursorToSearchResultConverter mConverter; private final SiteMapManager mSiteMapManager; Loading @@ -106,7 +107,7 @@ public class DatabaseResultLoader extends AsyncLoader<Set<? extends SearchResult super(context); mSiteMapManager = mapManager; mContext = context; mQueryText = cleanQuery(queryText); mQueryText = queryText; mConverter = new CursorToSearchResultConverter(context); } Loading Loading @@ -136,18 +137,6 @@ public class DatabaseResultLoader extends AsyncLoader<Set<? extends SearchResult return super.onCancelLoad(); } /** * A generic method to make the query suitable for searching the database. * * @return the cleaned query string */ private static String cleanQuery(String query) { if (TextUtils.isEmpty(query)) { return null; } return query.trim(); } /** * Creates and executes the query which matches prefixes of the first word of the given columns. * Loading src/com/android/settings/search/InstalledAppResultLoader.java +3 −1 Original line number Diff line number Diff line Loading @@ -27,6 +27,7 @@ import android.net.Uri; import android.os.UserHandle; import android.os.UserManager; import android.provider.Settings; import android.support.annotation.VisibleForTesting; import android.text.TextUtils; import com.android.internal.logging.nano.MetricsProto; Loading Loading @@ -54,7 +55,8 @@ public class InstalledAppResultLoader extends AsyncLoader<Set<? extends SearchRe private List<String> mBreadcrumb; private SiteMapManager mSiteMapManager; private final String mQuery; @VisibleForTesting final String mQuery; private final UserManager mUserManager; private final PackageManagerWrapper mPackageManager; private final List<ResolveInfo> mHomeActivities = new ArrayList<>(); Loading src/com/android/settings/search/SearchFeatureProviderImpl.java +16 −8 Original line number Diff line number Diff line Loading @@ -17,14 +17,10 @@ package com.android.settings.search; import android.app.Activity; import android.content.Context; import android.content.Intent; import android.text.TextUtils; import android.util.Log; import android.view.Menu; import android.view.MenuItem; import com.android.settings.R; import com.android.settings.applications.PackageManagerWrapperImpl; import com.android.settings.dashboard.SiteMapManager; Loading @@ -45,14 +41,14 @@ public class SearchFeatureProviderImpl implements SearchFeatureProvider { @Override public DatabaseResultLoader getDatabaseSearchLoader(Context context, String query) { return new DatabaseResultLoader(context, query, getSiteMapManager()); return new DatabaseResultLoader(context, cleanQuery(query), getSiteMapManager()); } @Override public InstalledAppResultLoader getInstalledAppSearchLoader(Context context, String query) { return new InstalledAppResultLoader( context, new PackageManagerWrapperImpl(context.getPackageManager()), query, getSiteMapManager()); context, new PackageManagerWrapperImpl(context.getPackageManager()), cleanQuery(query), getSiteMapManager()); } @Override Loading Loading @@ -88,4 +84,16 @@ public class SearchFeatureProviderImpl implements SearchFeatureProvider { Log.d(TAG, "IndexDatabase() took " + (System.currentTimeMillis() - indexStartTime) + " ms"); } /** * A generic method to make the query suitable for searching the database. * * @return the cleaned query string */ private String cleanQuery(String query) { if (TextUtils.isEmpty(query)) { return null; } return query.trim(); } } tests/robotests/src/com/android/settings/search/DatabaseResultLoaderTest.java +1 −9 Original line number Diff line number Diff line Loading @@ -22,11 +22,11 @@ import android.content.Context; import android.content.Intent; import android.database.sqlite.SQLiteDatabase; import com.android.settings.testutils.SettingsRobolectricTestRunner; import com.android.settings.TestConfig; import com.android.settings.dashboard.SiteMapManager; import com.android.settings.testutils.DatabaseTestUtils; import com.android.settings.testutils.FakeFeatureFactory; import com.android.settings.testutils.SettingsRobolectricTestRunner; import org.junit.After; import org.junit.Before; Loading Loading @@ -114,14 +114,6 @@ public class DatabaseResultLoaderTest { assertThat(loader.loadInBackground().size()).isEqualTo(1); } @Test public void testSpecialCaseSpace_matches() { insertSpecialCase("space"); DatabaseResultLoader loader = new DatabaseResultLoader(mContext, " space ", mSiteMapManager); assertThat(loader.loadInBackground().size()).isEqualTo(1); } @Test public void testSpecialCaseDash_matchesWordNoDash() { insertSpecialCase("wi-fi calling"); Loading tests/robotests/src/com/android/settings/search/SearchFeatureProviderImplTest.java +19 −5 Original line number Diff line number Diff line Loading @@ -20,9 +20,9 @@ package com.android.settings.search; import android.app.Activity; import android.view.Menu; import com.android.settings.testutils.SettingsRobolectricTestRunner; import com.android.settings.TestConfig; import com.android.settings.dashboard.SiteMapManager; import com.android.settings.testutils.SettingsRobolectricTestRunner; import org.junit.Before; import org.junit.Test; Loading @@ -33,11 +33,7 @@ import org.mockito.MockitoAnnotations; import org.robolectric.Robolectric; import org.robolectric.annotation.Config; import static com.google.common.truth.Truth.assertThat; import static org.mockito.Matchers.anyInt; import static org.mockito.Matchers.anyString; import static org.mockito.Mockito.verify; @RunWith(SettingsRobolectricTestRunner.class) @Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION) Loading @@ -62,4 +58,22 @@ public class SearchFeatureProviderImplTest { assertThat(manager1).isSameAs(manager2); } @Test public void getDatabaseSearchLoader_shouldCleanupQuery() { final String query = " space "; final DatabaseResultLoader loader = mProvider.getDatabaseSearchLoader(mActivity, query); assertThat(loader.mQueryText).isEqualTo(query.trim()); } @Test public void getInstalledAppSearchLoader_shouldCleanupQuery() { final String query = " space "; final InstalledAppResultLoader loader = mProvider.getInstalledAppSearchLoader(mActivity, query); assertThat(loader.mQuery).isEqualTo(query.trim()); } } Loading
src/com/android/settings/search/DatabaseResultLoader.java +4 −15 Original line number Diff line number Diff line Loading @@ -20,8 +20,8 @@ package com.android.settings.search; import android.content.Context; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.support.annotation.VisibleForTesting; import android.text.TextUtils; import com.android.settings.dashboard.SiteMapManager; import com.android.settings.utils.AsyncLoader; Loading Loading @@ -97,7 +97,8 @@ public class DatabaseResultLoader extends AsyncLoader<Set<? extends SearchResult */ public static final int[] BASE_RANKS = {1, 3, 7, 9}; private final String mQueryText; @VisibleForTesting final String mQueryText; private final Context mContext; private final CursorToSearchResultConverter mConverter; private final SiteMapManager mSiteMapManager; Loading @@ -106,7 +107,7 @@ public class DatabaseResultLoader extends AsyncLoader<Set<? extends SearchResult super(context); mSiteMapManager = mapManager; mContext = context; mQueryText = cleanQuery(queryText); mQueryText = queryText; mConverter = new CursorToSearchResultConverter(context); } Loading Loading @@ -136,18 +137,6 @@ public class DatabaseResultLoader extends AsyncLoader<Set<? extends SearchResult return super.onCancelLoad(); } /** * A generic method to make the query suitable for searching the database. * * @return the cleaned query string */ private static String cleanQuery(String query) { if (TextUtils.isEmpty(query)) { return null; } return query.trim(); } /** * Creates and executes the query which matches prefixes of the first word of the given columns. * Loading
src/com/android/settings/search/InstalledAppResultLoader.java +3 −1 Original line number Diff line number Diff line Loading @@ -27,6 +27,7 @@ import android.net.Uri; import android.os.UserHandle; import android.os.UserManager; import android.provider.Settings; import android.support.annotation.VisibleForTesting; import android.text.TextUtils; import com.android.internal.logging.nano.MetricsProto; Loading Loading @@ -54,7 +55,8 @@ public class InstalledAppResultLoader extends AsyncLoader<Set<? extends SearchRe private List<String> mBreadcrumb; private SiteMapManager mSiteMapManager; private final String mQuery; @VisibleForTesting final String mQuery; private final UserManager mUserManager; private final PackageManagerWrapper mPackageManager; private final List<ResolveInfo> mHomeActivities = new ArrayList<>(); Loading
src/com/android/settings/search/SearchFeatureProviderImpl.java +16 −8 Original line number Diff line number Diff line Loading @@ -17,14 +17,10 @@ package com.android.settings.search; import android.app.Activity; import android.content.Context; import android.content.Intent; import android.text.TextUtils; import android.util.Log; import android.view.Menu; import android.view.MenuItem; import com.android.settings.R; import com.android.settings.applications.PackageManagerWrapperImpl; import com.android.settings.dashboard.SiteMapManager; Loading @@ -45,14 +41,14 @@ public class SearchFeatureProviderImpl implements SearchFeatureProvider { @Override public DatabaseResultLoader getDatabaseSearchLoader(Context context, String query) { return new DatabaseResultLoader(context, query, getSiteMapManager()); return new DatabaseResultLoader(context, cleanQuery(query), getSiteMapManager()); } @Override public InstalledAppResultLoader getInstalledAppSearchLoader(Context context, String query) { return new InstalledAppResultLoader( context, new PackageManagerWrapperImpl(context.getPackageManager()), query, getSiteMapManager()); context, new PackageManagerWrapperImpl(context.getPackageManager()), cleanQuery(query), getSiteMapManager()); } @Override Loading Loading @@ -88,4 +84,16 @@ public class SearchFeatureProviderImpl implements SearchFeatureProvider { Log.d(TAG, "IndexDatabase() took " + (System.currentTimeMillis() - indexStartTime) + " ms"); } /** * A generic method to make the query suitable for searching the database. * * @return the cleaned query string */ private String cleanQuery(String query) { if (TextUtils.isEmpty(query)) { return null; } return query.trim(); } }
tests/robotests/src/com/android/settings/search/DatabaseResultLoaderTest.java +1 −9 Original line number Diff line number Diff line Loading @@ -22,11 +22,11 @@ import android.content.Context; import android.content.Intent; import android.database.sqlite.SQLiteDatabase; import com.android.settings.testutils.SettingsRobolectricTestRunner; import com.android.settings.TestConfig; import com.android.settings.dashboard.SiteMapManager; import com.android.settings.testutils.DatabaseTestUtils; import com.android.settings.testutils.FakeFeatureFactory; import com.android.settings.testutils.SettingsRobolectricTestRunner; import org.junit.After; import org.junit.Before; Loading Loading @@ -114,14 +114,6 @@ public class DatabaseResultLoaderTest { assertThat(loader.loadInBackground().size()).isEqualTo(1); } @Test public void testSpecialCaseSpace_matches() { insertSpecialCase("space"); DatabaseResultLoader loader = new DatabaseResultLoader(mContext, " space ", mSiteMapManager); assertThat(loader.loadInBackground().size()).isEqualTo(1); } @Test public void testSpecialCaseDash_matchesWordNoDash() { insertSpecialCase("wi-fi calling"); Loading
tests/robotests/src/com/android/settings/search/SearchFeatureProviderImplTest.java +19 −5 Original line number Diff line number Diff line Loading @@ -20,9 +20,9 @@ package com.android.settings.search; import android.app.Activity; import android.view.Menu; import com.android.settings.testutils.SettingsRobolectricTestRunner; import com.android.settings.TestConfig; import com.android.settings.dashboard.SiteMapManager; import com.android.settings.testutils.SettingsRobolectricTestRunner; import org.junit.Before; import org.junit.Test; Loading @@ -33,11 +33,7 @@ import org.mockito.MockitoAnnotations; import org.robolectric.Robolectric; import org.robolectric.annotation.Config; import static com.google.common.truth.Truth.assertThat; import static org.mockito.Matchers.anyInt; import static org.mockito.Matchers.anyString; import static org.mockito.Mockito.verify; @RunWith(SettingsRobolectricTestRunner.class) @Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION) Loading @@ -62,4 +58,22 @@ public class SearchFeatureProviderImplTest { assertThat(manager1).isSameAs(manager2); } @Test public void getDatabaseSearchLoader_shouldCleanupQuery() { final String query = " space "; final DatabaseResultLoader loader = mProvider.getDatabaseSearchLoader(mActivity, query); assertThat(loader.mQueryText).isEqualTo(query.trim()); } @Test public void getInstalledAppSearchLoader_shouldCleanupQuery() { final String query = " space "; final InstalledAppResultLoader loader = mProvider.getInstalledAppSearchLoader(mActivity, query); assertThat(loader.mQuery).isEqualTo(query.trim()); } }