Loading src/com/android/settings/language/UserDictionaryPreferenceController.java +1 −4 Original line number Diff line number Diff line Loading @@ -39,10 +39,7 @@ public class UserDictionaryPreferenceController extends AbstractPreferenceContro @Override public boolean isAvailable() { final TreeSet<String> localeSet = getDictionaryLocales(); // The locale list is null if and only if the user dictionary service is // not present or disabled. In this case we need to remove the preference. return localeSet != null; return true; } @Override Loading src/com/android/settings/notification/ZenModePrioritySettings.java +1 −1 Original line number Diff line number Diff line Loading @@ -31,7 +31,7 @@ import com.android.internal.logging.nano.MetricsProto.MetricsEvent; import com.android.settings.R; import com.android.settings.search.Indexable; public class ZenModePrioritySettings extends ZenModeSettingsBase implements Indexable { public class ZenModePrioritySettings extends ZenModeSettingsBase { private static final String KEY_REMINDERS = "reminders"; private static final String KEY_EVENTS = "events"; private static final String KEY_MESSAGES = "messages"; Loading src/com/android/settings/search/DatabaseIndexingManager.java +83 −62 Original line number Diff line number Diff line Loading @@ -17,53 +17,6 @@ package com.android.settings.search; import com.android.settings.R; import android.content.ComponentName; import android.content.ContentResolver; import android.content.ContentValues; import android.content.Context; import android.content.Intent; import android.content.pm.PackageManager; import android.content.pm.ResolveInfo; import android.content.res.XmlResourceParser; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteException; import android.net.Uri; import android.os.AsyncTask; import android.os.Build; import android.provider.SearchIndexableData; import android.provider.SearchIndexableResource; import android.provider.SearchIndexablesContract; import android.support.annotation.DrawableRes; import android.support.annotation.VisibleForTesting; import android.text.TextUtils; import android.util.AttributeSet; import android.util.Log; import android.util.Pair; import android.util.Xml; import com.android.internal.logging.nano.MetricsProto; import com.android.settings.SettingsActivity; import com.android.settings.core.PreferenceControllerMixin; import com.android.settings.overlay.FeatureFactory; import org.xmlpull.v1.XmlPullParser; import org.xmlpull.v1.XmlPullParserException; import java.io.IOException; import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; import java.util.HashSet; import java.util.List; import java.util.Locale; import java.util.Map; import java.util.Objects; import java.util.Set; import java.util.concurrent.atomic.AtomicBoolean; import static android.provider.SearchIndexablesContract.COLUMN_INDEX_NON_INDEXABLE_KEYS_KEY_VALUE; import static android.provider.SearchIndexablesContract.COLUMN_INDEX_RAW_CLASS_NAME; import static android.provider.SearchIndexablesContract.COLUMN_INDEX_RAW_ENTRIES; Loading @@ -85,17 +38,22 @@ import static android.provider.SearchIndexablesContract.COLUMN_INDEX_XML_RES_INT import static android.provider.SearchIndexablesContract.COLUMN_INDEX_XML_RES_INTENT_TARGET_CLASS; import static android.provider.SearchIndexablesContract.COLUMN_INDEX_XML_RES_INTENT_TARGET_PACKAGE; import static android.provider.SearchIndexablesContract.COLUMN_INDEX_XML_RES_RESID; import static com.android.settings.search.DatabaseResultLoader.*; import static com.android.settings.search.DatabaseResultLoader.COLUMN_INDEX_ID; import static com.android.settings.search.DatabaseResultLoader .COLUMN_INDEX_INTENT_ACTION_TARGET_PACKAGE; import static com.android.settings.search.DatabaseResultLoader.COLUMN_INDEX_KEY; import static com.android.settings.search.DatabaseResultLoader.SELECT_COLUMNS; import static com.android.settings.search.IndexDatabaseHelper.IndexColumns.CLASS_NAME; import static com.android.settings.search.IndexDatabaseHelper.IndexColumns.DATA_ENTRIES; import static com.android.settings.search.IndexDatabaseHelper.IndexColumns.DATA_KEYWORDS; import static com.android.settings.search.IndexDatabaseHelper.IndexColumns.DATA_KEY_REF; import static com.android.settings.search.IndexDatabaseHelper.IndexColumns.DATA_RANK; import static com.android.settings.search.IndexDatabaseHelper.IndexColumns.DATA_SUMMARY_OFF; import static com.android.settings.search.IndexDatabaseHelper.IndexColumns.DATA_SUMMARY_OFF_NORMALIZED; import static com.android.settings.search.IndexDatabaseHelper.IndexColumns .DATA_SUMMARY_OFF_NORMALIZED; import static com.android.settings.search.IndexDatabaseHelper.IndexColumns.DATA_SUMMARY_ON; import static com.android.settings.search.IndexDatabaseHelper.IndexColumns.DATA_SUMMARY_ON_NORMALIZED; import static com.android.settings.search.IndexDatabaseHelper.IndexColumns .DATA_SUMMARY_ON_NORMALIZED; import static com.android.settings.search.IndexDatabaseHelper.IndexColumns.DATA_TITLE; import static com.android.settings.search.IndexDatabaseHelper.IndexColumns.DATA_TITLE_NORMALIZED; import static com.android.settings.search.IndexDatabaseHelper.IndexColumns.DOCID; Loading @@ -111,6 +69,49 @@ import static com.android.settings.search.IndexDatabaseHelper.IndexColumns.SCREE import static com.android.settings.search.IndexDatabaseHelper.IndexColumns.USER_ID; import static com.android.settings.search.IndexDatabaseHelper.Tables.TABLE_PREFS_INDEX; import android.content.ComponentName; import android.content.ContentResolver; import android.content.ContentValues; import android.content.Context; import android.content.Intent; import android.content.pm.PackageManager; import android.content.pm.ResolveInfo; import android.content.res.XmlResourceParser; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteException; import android.net.Uri; import android.os.AsyncTask; import android.os.Build; import android.provider.SearchIndexableData; import android.provider.SearchIndexableResource; import android.provider.SearchIndexablesContract; import android.support.annotation.DrawableRes; import android.support.annotation.VisibleForTesting; import android.text.TextUtils; import android.util.ArraySet; import android.util.AttributeSet; import android.util.Log; import android.util.Xml; import com.android.settings.SettingsActivity; import com.android.settings.core.PreferenceControllerMixin; import com.android.settings.overlay.FeatureFactory; import org.xmlpull.v1.XmlPullParser; import org.xmlpull.v1.XmlPullParserException; import java.io.IOException; import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Locale; import java.util.Map; import java.util.Objects; import java.util.Set; import java.util.concurrent.atomic.AtomicBoolean; /** * Consumes the SearchIndexableProvider content providers. * Updates the Resource, Raw Data and non-indexable data for Search. Loading @@ -118,6 +119,7 @@ import static com.android.settings.search.IndexDatabaseHelper.Tables.TABLE_PREFS * TODO this class needs to be refactored by moving most of its methods into controllers */ public class DatabaseIndexingManager { private static final String LOG_TAG = "DatabaseIndexingManager"; private static final String METRICS_ACTION_SETTINGS_ASYNC_INDEX = Loading Loading @@ -165,6 +167,7 @@ public class DatabaseIndexingManager { * calls will only gather non-indexable keys. */ public void performIndexing() { final long startTime = System.currentTimeMillis(); final Intent intent = new Intent(SearchIndexablesContract.PROVIDER_INTERFACE); final List<ResolveInfo> list = mContext.getPackageManager().queryIntentContentProviders(intent, 0); Loading @@ -187,13 +190,28 @@ public class DatabaseIndexingManager { if (isFullIndex) { addIndexablesFromRemoteProvider(packageName, authority); } final long nonIndexableStartTime = System.currentTimeMillis(); addNonIndexablesKeysFromRemoteProvider(packageName, authority); if (SettingsSearchIndexablesProvider.DEBUG) { final long nonIndextableTime = System.currentTimeMillis() - nonIndexableStartTime; Log.d(LOG_TAG, "performIndexing update non-indexable for package " + packageName + " took time: " + nonIndextableTime); } } final long updateDatabaseStartTime = System.currentTimeMillis(); updateDatabase(isFullIndex, localeStr); if (SettingsSearchIndexablesProvider.DEBUG) { final long updateDatabaseTime = System.currentTimeMillis() - updateDatabaseStartTime; Log.d(LOG_TAG, "performIndexing updateDatabase took time: " + updateDatabaseTime); } IndexDatabaseHelper.setLocaleIndexed(mContext, localeStr); IndexDatabaseHelper.setBuildIndexed(mContext, fingerprint); if (SettingsSearchIndexablesProvider.DEBUG) { final long indexingTime = System.currentTimeMillis() - startTime; Log.d(LOG_TAG, "performIndexing took time: " + indexingTime + "ms. Full index? " + isFullIndex); } } /** Loading Loading @@ -395,7 +413,8 @@ public class DatabaseIndexingManager { String authority) { final List<String> keys = getNonIndexablesKeysFromRemoteProvider(packageName, authority); addNonIndexableKeys(packageName, new HashSet<>(keys)); addNonIndexableKeys(packageName, keys); } private List<String> getNonIndexablesKeysFromRemoteProvider(String packageName, Loading Loading @@ -452,9 +471,11 @@ public class DatabaseIndexingManager { } } public void addNonIndexableKeys(String authority, Set<String> keys) { public void addNonIndexableKeys(String authority, List<String> keys) { synchronized (mDataToProcess) { mDataToProcess.nonIndexableKeys.put(authority, keys); if (keys != null && !keys.isEmpty()) { mDataToProcess.nonIndexableKeys.put(authority, new ArraySet<>(keys)); } } } Loading src/com/android/settings/search/SavedQueryController.java +8 −0 Original line number Diff line number Diff line Loading @@ -21,6 +21,7 @@ import android.app.LoaderManager; import android.content.Context; import android.content.Loader; import android.os.Bundle; import android.util.Log; import android.view.Menu; import android.view.MenuItem; Loading @@ -38,6 +39,7 @@ public class SavedQueryController implements LoaderManager.LoaderCallbacks, private static final int LOADER_ID_REMOVE_QUERY_TASK = 1; private static final int LOADER_ID_SAVED_QUERIES = 2; private static final String ARG_QUERY = "remove_query"; private static final String TAG = "SearchSavedQueryCtrl"; private static final int MENU_SEARCH_HISTORY = 1000; Loading Loading @@ -75,6 +77,9 @@ public class SavedQueryController implements LoaderManager.LoaderCallbacks, mLoaderManager.restartLoader(LOADER_ID_SAVED_QUERIES, null, this); break; case LOADER_ID_SAVED_QUERIES: if (SettingsSearchIndexablesProvider.DEBUG) { Log.d(TAG, "Saved queries loaded"); } mResultAdapter.displaySavedQuery((List<SearchResult>) data); break; } Loading Loading @@ -114,6 +119,9 @@ public class SavedQueryController implements LoaderManager.LoaderCallbacks, } public void loadSavedQueries() { if (SettingsSearchIndexablesProvider.DEBUG) { Log.d(TAG, "loading saved queries"); } mLoaderManager.restartLoader(LOADER_ID_SAVED_QUERIES, null, this); } } src/com/android/settings/search/SearchFeatureProvider.java +0 −4 Original line number Diff line number Diff line Loading @@ -16,16 +16,12 @@ */ package com.android.settings.search; import android.app.Activity; import android.content.Context; import android.view.Menu; import android.view.View; import com.android.settings.dashboard.SiteMapManager; import com.android.settings.search.ranking.SearchResultsRankerCallback; import java.util.List; /** * FeatureProvider for Settings Search */ Loading Loading
src/com/android/settings/language/UserDictionaryPreferenceController.java +1 −4 Original line number Diff line number Diff line Loading @@ -39,10 +39,7 @@ public class UserDictionaryPreferenceController extends AbstractPreferenceContro @Override public boolean isAvailable() { final TreeSet<String> localeSet = getDictionaryLocales(); // The locale list is null if and only if the user dictionary service is // not present or disabled. In this case we need to remove the preference. return localeSet != null; return true; } @Override Loading
src/com/android/settings/notification/ZenModePrioritySettings.java +1 −1 Original line number Diff line number Diff line Loading @@ -31,7 +31,7 @@ import com.android.internal.logging.nano.MetricsProto.MetricsEvent; import com.android.settings.R; import com.android.settings.search.Indexable; public class ZenModePrioritySettings extends ZenModeSettingsBase implements Indexable { public class ZenModePrioritySettings extends ZenModeSettingsBase { private static final String KEY_REMINDERS = "reminders"; private static final String KEY_EVENTS = "events"; private static final String KEY_MESSAGES = "messages"; Loading
src/com/android/settings/search/DatabaseIndexingManager.java +83 −62 Original line number Diff line number Diff line Loading @@ -17,53 +17,6 @@ package com.android.settings.search; import com.android.settings.R; import android.content.ComponentName; import android.content.ContentResolver; import android.content.ContentValues; import android.content.Context; import android.content.Intent; import android.content.pm.PackageManager; import android.content.pm.ResolveInfo; import android.content.res.XmlResourceParser; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteException; import android.net.Uri; import android.os.AsyncTask; import android.os.Build; import android.provider.SearchIndexableData; import android.provider.SearchIndexableResource; import android.provider.SearchIndexablesContract; import android.support.annotation.DrawableRes; import android.support.annotation.VisibleForTesting; import android.text.TextUtils; import android.util.AttributeSet; import android.util.Log; import android.util.Pair; import android.util.Xml; import com.android.internal.logging.nano.MetricsProto; import com.android.settings.SettingsActivity; import com.android.settings.core.PreferenceControllerMixin; import com.android.settings.overlay.FeatureFactory; import org.xmlpull.v1.XmlPullParser; import org.xmlpull.v1.XmlPullParserException; import java.io.IOException; import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; import java.util.HashSet; import java.util.List; import java.util.Locale; import java.util.Map; import java.util.Objects; import java.util.Set; import java.util.concurrent.atomic.AtomicBoolean; import static android.provider.SearchIndexablesContract.COLUMN_INDEX_NON_INDEXABLE_KEYS_KEY_VALUE; import static android.provider.SearchIndexablesContract.COLUMN_INDEX_RAW_CLASS_NAME; import static android.provider.SearchIndexablesContract.COLUMN_INDEX_RAW_ENTRIES; Loading @@ -85,17 +38,22 @@ import static android.provider.SearchIndexablesContract.COLUMN_INDEX_XML_RES_INT import static android.provider.SearchIndexablesContract.COLUMN_INDEX_XML_RES_INTENT_TARGET_CLASS; import static android.provider.SearchIndexablesContract.COLUMN_INDEX_XML_RES_INTENT_TARGET_PACKAGE; import static android.provider.SearchIndexablesContract.COLUMN_INDEX_XML_RES_RESID; import static com.android.settings.search.DatabaseResultLoader.*; import static com.android.settings.search.DatabaseResultLoader.COLUMN_INDEX_ID; import static com.android.settings.search.DatabaseResultLoader .COLUMN_INDEX_INTENT_ACTION_TARGET_PACKAGE; import static com.android.settings.search.DatabaseResultLoader.COLUMN_INDEX_KEY; import static com.android.settings.search.DatabaseResultLoader.SELECT_COLUMNS; import static com.android.settings.search.IndexDatabaseHelper.IndexColumns.CLASS_NAME; import static com.android.settings.search.IndexDatabaseHelper.IndexColumns.DATA_ENTRIES; import static com.android.settings.search.IndexDatabaseHelper.IndexColumns.DATA_KEYWORDS; import static com.android.settings.search.IndexDatabaseHelper.IndexColumns.DATA_KEY_REF; import static com.android.settings.search.IndexDatabaseHelper.IndexColumns.DATA_RANK; import static com.android.settings.search.IndexDatabaseHelper.IndexColumns.DATA_SUMMARY_OFF; import static com.android.settings.search.IndexDatabaseHelper.IndexColumns.DATA_SUMMARY_OFF_NORMALIZED; import static com.android.settings.search.IndexDatabaseHelper.IndexColumns .DATA_SUMMARY_OFF_NORMALIZED; import static com.android.settings.search.IndexDatabaseHelper.IndexColumns.DATA_SUMMARY_ON; import static com.android.settings.search.IndexDatabaseHelper.IndexColumns.DATA_SUMMARY_ON_NORMALIZED; import static com.android.settings.search.IndexDatabaseHelper.IndexColumns .DATA_SUMMARY_ON_NORMALIZED; import static com.android.settings.search.IndexDatabaseHelper.IndexColumns.DATA_TITLE; import static com.android.settings.search.IndexDatabaseHelper.IndexColumns.DATA_TITLE_NORMALIZED; import static com.android.settings.search.IndexDatabaseHelper.IndexColumns.DOCID; Loading @@ -111,6 +69,49 @@ import static com.android.settings.search.IndexDatabaseHelper.IndexColumns.SCREE import static com.android.settings.search.IndexDatabaseHelper.IndexColumns.USER_ID; import static com.android.settings.search.IndexDatabaseHelper.Tables.TABLE_PREFS_INDEX; import android.content.ComponentName; import android.content.ContentResolver; import android.content.ContentValues; import android.content.Context; import android.content.Intent; import android.content.pm.PackageManager; import android.content.pm.ResolveInfo; import android.content.res.XmlResourceParser; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteException; import android.net.Uri; import android.os.AsyncTask; import android.os.Build; import android.provider.SearchIndexableData; import android.provider.SearchIndexableResource; import android.provider.SearchIndexablesContract; import android.support.annotation.DrawableRes; import android.support.annotation.VisibleForTesting; import android.text.TextUtils; import android.util.ArraySet; import android.util.AttributeSet; import android.util.Log; import android.util.Xml; import com.android.settings.SettingsActivity; import com.android.settings.core.PreferenceControllerMixin; import com.android.settings.overlay.FeatureFactory; import org.xmlpull.v1.XmlPullParser; import org.xmlpull.v1.XmlPullParserException; import java.io.IOException; import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Locale; import java.util.Map; import java.util.Objects; import java.util.Set; import java.util.concurrent.atomic.AtomicBoolean; /** * Consumes the SearchIndexableProvider content providers. * Updates the Resource, Raw Data and non-indexable data for Search. Loading @@ -118,6 +119,7 @@ import static com.android.settings.search.IndexDatabaseHelper.Tables.TABLE_PREFS * TODO this class needs to be refactored by moving most of its methods into controllers */ public class DatabaseIndexingManager { private static final String LOG_TAG = "DatabaseIndexingManager"; private static final String METRICS_ACTION_SETTINGS_ASYNC_INDEX = Loading Loading @@ -165,6 +167,7 @@ public class DatabaseIndexingManager { * calls will only gather non-indexable keys. */ public void performIndexing() { final long startTime = System.currentTimeMillis(); final Intent intent = new Intent(SearchIndexablesContract.PROVIDER_INTERFACE); final List<ResolveInfo> list = mContext.getPackageManager().queryIntentContentProviders(intent, 0); Loading @@ -187,13 +190,28 @@ public class DatabaseIndexingManager { if (isFullIndex) { addIndexablesFromRemoteProvider(packageName, authority); } final long nonIndexableStartTime = System.currentTimeMillis(); addNonIndexablesKeysFromRemoteProvider(packageName, authority); if (SettingsSearchIndexablesProvider.DEBUG) { final long nonIndextableTime = System.currentTimeMillis() - nonIndexableStartTime; Log.d(LOG_TAG, "performIndexing update non-indexable for package " + packageName + " took time: " + nonIndextableTime); } } final long updateDatabaseStartTime = System.currentTimeMillis(); updateDatabase(isFullIndex, localeStr); if (SettingsSearchIndexablesProvider.DEBUG) { final long updateDatabaseTime = System.currentTimeMillis() - updateDatabaseStartTime; Log.d(LOG_TAG, "performIndexing updateDatabase took time: " + updateDatabaseTime); } IndexDatabaseHelper.setLocaleIndexed(mContext, localeStr); IndexDatabaseHelper.setBuildIndexed(mContext, fingerprint); if (SettingsSearchIndexablesProvider.DEBUG) { final long indexingTime = System.currentTimeMillis() - startTime; Log.d(LOG_TAG, "performIndexing took time: " + indexingTime + "ms. Full index? " + isFullIndex); } } /** Loading Loading @@ -395,7 +413,8 @@ public class DatabaseIndexingManager { String authority) { final List<String> keys = getNonIndexablesKeysFromRemoteProvider(packageName, authority); addNonIndexableKeys(packageName, new HashSet<>(keys)); addNonIndexableKeys(packageName, keys); } private List<String> getNonIndexablesKeysFromRemoteProvider(String packageName, Loading Loading @@ -452,9 +471,11 @@ public class DatabaseIndexingManager { } } public void addNonIndexableKeys(String authority, Set<String> keys) { public void addNonIndexableKeys(String authority, List<String> keys) { synchronized (mDataToProcess) { mDataToProcess.nonIndexableKeys.put(authority, keys); if (keys != null && !keys.isEmpty()) { mDataToProcess.nonIndexableKeys.put(authority, new ArraySet<>(keys)); } } } Loading
src/com/android/settings/search/SavedQueryController.java +8 −0 Original line number Diff line number Diff line Loading @@ -21,6 +21,7 @@ import android.app.LoaderManager; import android.content.Context; import android.content.Loader; import android.os.Bundle; import android.util.Log; import android.view.Menu; import android.view.MenuItem; Loading @@ -38,6 +39,7 @@ public class SavedQueryController implements LoaderManager.LoaderCallbacks, private static final int LOADER_ID_REMOVE_QUERY_TASK = 1; private static final int LOADER_ID_SAVED_QUERIES = 2; private static final String ARG_QUERY = "remove_query"; private static final String TAG = "SearchSavedQueryCtrl"; private static final int MENU_SEARCH_HISTORY = 1000; Loading Loading @@ -75,6 +77,9 @@ public class SavedQueryController implements LoaderManager.LoaderCallbacks, mLoaderManager.restartLoader(LOADER_ID_SAVED_QUERIES, null, this); break; case LOADER_ID_SAVED_QUERIES: if (SettingsSearchIndexablesProvider.DEBUG) { Log.d(TAG, "Saved queries loaded"); } mResultAdapter.displaySavedQuery((List<SearchResult>) data); break; } Loading Loading @@ -114,6 +119,9 @@ public class SavedQueryController implements LoaderManager.LoaderCallbacks, } public void loadSavedQueries() { if (SettingsSearchIndexablesProvider.DEBUG) { Log.d(TAG, "loading saved queries"); } mLoaderManager.restartLoader(LOADER_ID_SAVED_QUERIES, null, this); } }
src/com/android/settings/search/SearchFeatureProvider.java +0 −4 Original line number Diff line number Diff line Loading @@ -16,16 +16,12 @@ */ package com.android.settings.search; import android.app.Activity; import android.content.Context; import android.view.Menu; import android.view.View; import com.android.settings.dashboard.SiteMapManager; import com.android.settings.search.ranking.SearchResultsRankerCallback; import java.util.List; /** * FeatureProvider for Settings Search */ Loading