Remove more things from search v1

Test: robotests
Change-Id: Ide54d1cec69ae3a6782a979d3eeb7f3fc44f09b3
This commit is contained in:
Fan Zhang
2018-01-18 13:07:49 -08:00
parent b0e89cd1c3
commit 74706b6ed1
9 changed files with 39 additions and 488 deletions

View File

@@ -17,6 +17,9 @@
package com.android.settings.search;
import static com.android.settings.search.DatabaseResultLoader.BASE_RANKS;
import static com.android.settings.search.SearchResult.TOP_RANK;
import android.content.Context;
import android.content.pm.PackageManager;
import android.content.res.Resources;
@@ -26,18 +29,12 @@ import android.os.BadParcelableException;
import android.text.TextUtils;
import android.util.Log;
import com.android.settings.dashboard.SiteMapManager;
import java.util.Arrays;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
import static com.android.settings.search.DatabaseResultLoader.BASE_RANKS;
import static com.android.settings.search.SearchResult.TOP_RANK;
/**
* Controller to Build search results from {@link Cursor} Objects.
*
@@ -94,8 +91,7 @@ public class CursorToSearchResultConverter {
mContext = context;
}
public Set<SearchResult> convertCursor(SiteMapManager sitemapManager,
Cursor cursorResults, int baseRank) {
public Set<SearchResult> convertCursor(Cursor cursorResults, int baseRank) {
if (cursorResults == null) {
return null;
}
@@ -103,8 +99,8 @@ public class CursorToSearchResultConverter {
final Set<SearchResult> results = new HashSet<>();
while (cursorResults.moveToNext()) {
SearchResult result = buildSingleSearchResultFromCursor(sitemapManager,
contextMap, cursorResults, baseRank);
SearchResult result = buildSingleSearchResultFromCursor(contextMap, cursorResults,
baseRank);
if (result != null) {
results.add(result);
}
@@ -132,8 +128,8 @@ public class CursorToSearchResultConverter {
return null;
}
private SearchResult buildSingleSearchResultFromCursor(SiteMapManager sitemapManager,
Map<String, Context> contextMap, Cursor cursor, int baseRank) {
private SearchResult buildSingleSearchResultFromCursor(Map<String, Context> contextMap,
Cursor cursor, int baseRank) {
final int docId = cursor.getInt(COLUMN_INDEX_ID);
final String pkgName = cursor.getString(COLUMN_INDEX_INTENT_ACTION_TARGET_PACKAGE);
final String title = cursor.getString(COLUMN_INDEX_TITLE);
@@ -145,14 +141,12 @@ public class CursorToSearchResultConverter {
final byte[] marshalledPayload = cursor.getBlob(COLUMN_INDEX_PAYLOAD);
final ResultPayload payload = getUnmarshalledPayload(marshalledPayload, payloadType);
final List<String> breadcrumbs = getBreadcrumbs(sitemapManager, cursor);
final int rank = getRank(title, baseRank, key);
final SearchResult.Builder builder = new SearchResult.Builder()
.setStableId(docId)
.setTitle(title)
.setSummary(summaryOn)
.addBreadcrumbs(breadcrumbs)
.setRank(rank)
.setIcon(getIconForPackage(contextMap, pkgName, className, iconResStr))
.setPayload(payload);
@@ -191,12 +185,6 @@ public class CursorToSearchResultConverter {
return icon;
}
private List<String> getBreadcrumbs(SiteMapManager siteMapManager, Cursor cursor) {
final String screenTitle = cursor.getString(COLUMN_INDEX_SCREEN_TITLE);
final String screenClass = cursor.getString(COLUMN_INDEX_CLASS_NAME);
return siteMapManager == null ? null : siteMapManager.buildBreadCrumb(mContext, screenClass,
screenTitle);
}
/** Uses the breadcrumbs to determine the offset to the base rank.
* There are three checks

View File

@@ -19,7 +19,8 @@ package com.android.settings.search;
import static com.android.settings.search.CursorToSearchResultConverter.COLUMN_INDEX_ID;
import static com.android.settings.search.CursorToSearchResultConverter.COLUMN_INDEX_INTENT_ACTION_TARGET_PACKAGE;
import static com.android.settings.search.CursorToSearchResultConverter
.COLUMN_INDEX_INTENT_ACTION_TARGET_PACKAGE;
import static com.android.settings.search.CursorToSearchResultConverter.COLUMN_INDEX_KEY;
import static com.android.settings.search.DatabaseResultLoader.SELECT_COLUMNS;
import static com.android.settings.search.IndexDatabaseHelper.IndexColumns.CLASS_NAME;
@@ -27,7 +28,8 @@ import static com.android.settings.search.IndexDatabaseHelper.IndexColumns.DATA_
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_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;
@@ -50,7 +52,6 @@ import android.content.pm.ResolveInfo;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteException;
import android.os.AsyncTask;
import android.os.Build;
import android.provider.SearchIndexablesContract;
import android.provider.SearchIndexablesContract.SiteMapColumns;
@@ -58,7 +59,6 @@ import android.support.annotation.VisibleForTesting;
import android.text.TextUtils;
import android.util.Log;
import com.android.settings.overlay.FeatureFactory;
import com.android.settings.search.indexing.IndexData;
import com.android.settings.search.indexing.IndexDataConverter;
import com.android.settings.search.indexing.PreIndexData;
@@ -68,7 +68,6 @@ import java.util.List;
import java.util.Locale;
import java.util.Map;
import java.util.Set;
import java.util.concurrent.atomic.AtomicBoolean;
/**
* Consumes the SearchIndexableProvider content providers.
@@ -80,15 +79,6 @@ public class DatabaseIndexingManager {
private static final String LOG_TAG = "DatabaseIndexingManager";
private static final String METRICS_ACTION_SETTINGS_ASYNC_INDEX =
"search_asynchronous_indexing";
public static final String FIELD_NAME_SEARCH_INDEX_DATA_PROVIDER =
"SEARCH_INDEX_DATA_PROVIDER";
@VisibleForTesting
final AtomicBoolean mIsIndexingComplete = new AtomicBoolean(false);
private PreIndexDataCollector mCollector;
private IndexDataConverter mConverter;
@@ -98,15 +88,6 @@ public class DatabaseIndexingManager {
mContext = context;
}
public boolean isIndexingComplete() {
return mIsIndexingComplete.get();
}
public void indexDatabase(IndexingCallback callback) {
IndexingTask task = new IndexingTask(callback);
task.execute();
}
/**
* Accumulate all data and non-indexable keys from each of the content-providers.
* Only the first indexing for the default language gets static search results - subsequent
@@ -363,39 +344,4 @@ public class DatabaseIndexingManager {
return null;
}
}
public class IndexingTask extends AsyncTask<Void, Void, Void> {
@VisibleForTesting
IndexingCallback mCallback;
private long mIndexStartTime;
public IndexingTask(IndexingCallback callback) {
mCallback = callback;
}
@Override
protected void onPreExecute() {
mIndexStartTime = System.currentTimeMillis();
mIsIndexingComplete.set(false);
}
@Override
protected Void doInBackground(Void... voids) {
performIndexing();
return null;
}
@Override
protected void onPostExecute(Void aVoid) {
int indexingTime = (int) (System.currentTimeMillis() - mIndexStartTime);
FeatureFactory.getFactory(mContext).getMetricsFeatureProvider()
.histogram(mContext, METRICS_ACTION_SETTINGS_ASYNC_INDEX, indexingTime);
mIsIndexingComplete.set(true);
if (mCallback != null) {
mCallback.onIndexingFinished();
}
}
}
}

View File

@@ -1,12 +0,0 @@
package com.android.settings.search;
/**
* Callback for Settings search indexing.
*/
public interface IndexingCallback {
/**
* Called when Indexing is finished.
*/
void onIndexingFinished();
}

View File

@@ -23,11 +23,8 @@ import android.content.Context;
import android.content.Intent;
import android.widget.Toolbar;
import com.android.settings.dashboard.SiteMapManager;
import com.android.settings.overlay.FeatureFactory;
import java.util.concurrent.ExecutorService;
/**
* FeatureProvider for Settings Search
*/
@@ -44,11 +41,6 @@ public interface SearchFeatureProvider {
void verifyLaunchSearchResultPageCaller(Context context, @NonNull ComponentName caller)
throws SecurityException, IllegalArgumentException;
/**
* Returns the manager for looking up breadcrumbs.
*/
SiteMapManager getSiteMapManager();
/**
* Synchronously updates the Settings database.
*/
@@ -56,16 +48,6 @@ public interface SearchFeatureProvider {
DatabaseIndexingManager getIndexingManager(Context context);
/**
* @returns true when indexing is complete.
*/
boolean isIndexingComplete(Context context);
/**
* @return a {@link ExecutorService} to be shared between search tasks.
*/
ExecutorService getExecutorService();
default String getSettingsIntelligencePkgName() {
return "com.android.settings.intelligence";
}

View File

@@ -22,13 +22,10 @@ import android.content.Context;
import android.text.TextUtils;
import com.android.internal.annotations.VisibleForTesting;
import com.android.settings.dashboard.SiteMapManager;
import com.android.settings.overlay.FeatureFactory;
import com.android.settings.search.indexing.IndexData;
import java.util.Locale;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
/**
* FeatureProvider for the refactored search code.
@@ -39,8 +36,6 @@ public class SearchFeatureProviderImpl implements SearchFeatureProvider {
private static final String METRICS_ACTION_SETTINGS_INDEX = "search_synchronous_indexing";
private DatabaseIndexingManager mDatabaseIndexingManager;
private SiteMapManager mSiteMapManager;
private ExecutorService mExecutorService;
@Override
public void verifyLaunchSearchResultPageCaller(Context context, ComponentName caller) {
@@ -68,18 +63,6 @@ public class SearchFeatureProviderImpl implements SearchFeatureProvider {
return mDatabaseIndexingManager;
}
@Override
public boolean isIndexingComplete(Context context) {
return getIndexingManager(context).isIndexingComplete();
}
public SiteMapManager getSiteMapManager() {
if (mSiteMapManager == null) {
mSiteMapManager = new SiteMapManager();
}
return mSiteMapManager;
}
@Override
public void updateIndex(Context context) {
long indexStartTime = System.currentTimeMillis();
@@ -89,14 +72,6 @@ public class SearchFeatureProviderImpl implements SearchFeatureProvider {
.histogram(context, METRICS_ACTION_SETTINGS_INDEX, indexingTime);
}
@Override
public ExecutorService getExecutorService() {
if (mExecutorService == null) {
mExecutorService = Executors.newCachedThreadPool();
}
return mExecutorService;
}
protected boolean isSignatureWhitelisted(Context context, String callerPackage) {
return false;
}