Add synchronous indexing api to SearchFeatureProvider

- Opens the database indexing to be synchronous for the
external settings api.
- Adds logging to track synchronous and async indexing
times.

Bug: 62826872
Test: make RunSettingsRoboTests
Change-Id: I28b69f3952946c0ae5dd7ea7da66f7a5fd485637
This commit is contained in:
Matthew Fritze
2017-06-25 14:18:02 -07:00
parent a6b24388fc
commit 98a9e42c93
6 changed files with 38 additions and 12 deletions

View File

@@ -19,10 +19,9 @@ package com.android.settings.search;
import android.content.Context;
import android.text.TextUtils;
import android.util.Log;
import com.android.settings.applications.PackageManagerWrapperImpl;
import com.android.settings.dashboard.SiteMapManager;
import com.android.settings.overlay.FeatureFactory;
/**
* FeatureProvider for the refactored search code.
@@ -31,6 +30,8 @@ public class SearchFeatureProviderImpl implements SearchFeatureProvider {
private static final String TAG = "SearchFeatureProvider";
private static final String METRICS_ACTION_SETTINGS_INDEX = "search_synchronous_indexing";
private DatabaseIndexingManager mDatabaseIndexingManager;
private SiteMapManager mSiteMapManager;
@@ -78,11 +79,17 @@ public class SearchFeatureProviderImpl implements SearchFeatureProvider {
}
@Override
public void updateIndex(Context context, IndexingCallback callback) {
long indexStartTime = System.currentTimeMillis();
public void updateIndexAsync(Context context, IndexingCallback callback) {
getIndexingManager(context).indexDatabase(callback);
Log.d(TAG, "IndexDatabase() took " +
(System.currentTimeMillis() - indexStartTime) + " ms");
}
@Override
public void updateIndex(Context context) {
long indexStartTime = System.currentTimeMillis();
getIndexingManager(context).performIndexing();
int indexingTime = (int) (System.currentTimeMillis() - indexStartTime);
FeatureFactory.getFactory(context).getMetricsFeatureProvider()
.histogram(context, METRICS_ACTION_SETTINGS_INDEX, indexingTime);
}
/**