Merge "Move indexing into the Search Fragment"
This commit is contained in:
committed by
Android (Google) Code Review
commit
5a2a8f8ad3
@@ -191,10 +191,12 @@ public class SettingsActivity extends SettingsDrawerActivity
|
||||
private final BroadcastReceiver mUserAddRemoveReceiver = new BroadcastReceiver() {
|
||||
@Override
|
||||
public void onReceive(Context context, Intent intent) {
|
||||
String action = intent.getAction();
|
||||
if (action.equals(Intent.ACTION_USER_ADDED)
|
||||
|| action.equals(Intent.ACTION_USER_REMOVED)) {
|
||||
mSearchFeatureProvider.updateIndex(getApplicationContext());
|
||||
if (mSearchFeatureProvider != null && !mSearchFeatureProvider.isEnabled(context)) {
|
||||
String action = intent.getAction();
|
||||
if (action.equals(Intent.ACTION_USER_ADDED)
|
||||
|| action.equals(Intent.ACTION_USER_REMOVED)) {
|
||||
mSearchFeatureProvider.updateIndex(getApplicationContext());
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
@@ -251,7 +253,9 @@ public class SettingsActivity extends SettingsDrawerActivity
|
||||
@Override
|
||||
public void onConfigurationChanged(Configuration newConfig) {
|
||||
super.onConfigurationChanged(newConfig);
|
||||
mSearchFeatureProvider.updateIndex(getApplicationContext());
|
||||
if (!mSearchFeatureProvider.isEnabled(this)) {
|
||||
mSearchFeatureProvider.updateIndex(getApplicationContext());
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -400,7 +404,7 @@ public class SettingsActivity extends SettingsDrawerActivity
|
||||
|
||||
getFragmentManager().addOnBackStackChangedListener(this);
|
||||
|
||||
if (mIsShowingDashboard) {
|
||||
if (mIsShowingDashboard && !mSearchFeatureProvider.isEnabled(this)) {
|
||||
// Run the Index update only if we have some space
|
||||
if (!Utils.isLowStorage(this)) {
|
||||
mSearchFeatureProvider.updateIndex(getApplicationContext());
|
||||
@@ -642,8 +646,10 @@ public class SettingsActivity extends SettingsDrawerActivity
|
||||
mDevelopmentPreferencesListener);
|
||||
|
||||
registerReceiver(mBatteryInfoReceiver, new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
|
||||
registerReceiver(mUserAddRemoveReceiver, new IntentFilter(Intent.ACTION_USER_ADDED));
|
||||
registerReceiver(mUserAddRemoveReceiver, new IntentFilter(Intent.ACTION_USER_REMOVED));
|
||||
if (!mSearchFeatureProvider.isEnabled(this)) {
|
||||
registerReceiver(mUserAddRemoveReceiver, new IntentFilter(Intent.ACTION_USER_ADDED));
|
||||
registerReceiver(mUserAddRemoveReceiver, new IntentFilter(Intent.ACTION_USER_REMOVED));
|
||||
}
|
||||
if (mDynamicIndexableContentMonitor == null) {
|
||||
mDynamicIndexableContentMonitor = new DynamicIndexableContentMonitor();
|
||||
}
|
||||
@@ -659,7 +665,9 @@ public class SettingsActivity extends SettingsDrawerActivity
|
||||
protected void onPause() {
|
||||
super.onPause();
|
||||
unregisterReceiver(mBatteryInfoReceiver);
|
||||
unregisterReceiver(mUserAddRemoveReceiver);
|
||||
if (!mSearchFeatureProvider.isEnabled(this)) {
|
||||
unregisterReceiver(mUserAddRemoveReceiver);
|
||||
}
|
||||
if (mDynamicIndexableContentMonitor != null) {
|
||||
mDynamicIndexableContentMonitor.unregister(this, LOADER_ID_INDEXABLE_CONTENT_MONITOR);
|
||||
}
|
||||
|
@@ -201,7 +201,7 @@ public class IndexDatabaseHelper extends SQLiteOpenHelper {
|
||||
reconstruct(db);
|
||||
}
|
||||
|
||||
private void reconstruct(SQLiteDatabase db) {
|
||||
public void reconstruct(SQLiteDatabase db) {
|
||||
dropTables(db);
|
||||
bootstrapDB(db);
|
||||
}
|
||||
|
@@ -152,7 +152,7 @@ public class DatabaseIndexingManager {
|
||||
return mIsAvailable.get();
|
||||
}
|
||||
|
||||
public void update() {
|
||||
public void indexDatabase() {
|
||||
AsyncTask.execute(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
|
@@ -85,10 +85,11 @@ public class SearchFeatureProviderImpl implements SearchFeatureProvider {
|
||||
public void updateIndex(Context context) {
|
||||
long indexStartTime = System.currentTimeMillis();
|
||||
if (isEnabled(context)) {
|
||||
getIndexingManager(context).update();
|
||||
getIndexingManager(context).indexDatabase();
|
||||
} else {
|
||||
Index.getInstance(context).update();
|
||||
}
|
||||
Log.d(TAG, "Index.update() took " + (System.currentTimeMillis() - indexStartTime) + " ms");
|
||||
Log.d(TAG, "IndexDatabase() took " +
|
||||
(System.currentTimeMillis() - indexStartTime) + " ms");
|
||||
}
|
||||
}
|
||||
|
@@ -26,6 +26,7 @@ import android.support.annotation.VisibleForTesting;
|
||||
import android.support.v7.widget.LinearLayoutManager;
|
||||
import android.support.v7.widget.RecyclerView;
|
||||
import android.text.TextUtils;
|
||||
import android.util.Log;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
@@ -34,6 +35,7 @@ import android.widget.SearchView;
|
||||
|
||||
import com.android.internal.logging.nano.MetricsProto;
|
||||
import com.android.settings.R;
|
||||
import com.android.settings.Utils;
|
||||
import com.android.settings.core.InstrumentedFragment;
|
||||
import com.android.settings.core.instrumentation.MetricsFeatureProvider;
|
||||
import com.android.settings.overlay.FeatureFactory;
|
||||
@@ -92,10 +94,19 @@ public class SearchFragment extends InstrumentedFragment implements
|
||||
loaderManager.initLoader(LOADER_ID_DATABASE, null, this);
|
||||
loaderManager.initLoader(LOADER_ID_INSTALLED_APPS, null, this);
|
||||
}
|
||||
final ActionBar actionBar = getActivity().getActionBar();
|
||||
|
||||
final Activity activity = getActivity();
|
||||
final ActionBar actionBar = activity.getActionBar();
|
||||
actionBar.setCustomView(makeSearchView(actionBar, mQuery));
|
||||
actionBar.setDisplayShowCustomEnabled(true);
|
||||
actionBar.setDisplayShowTitleEnabled(false);
|
||||
|
||||
// Run the Index update only if we have some space
|
||||
if (!Utils.isLowStorage(activity)) {
|
||||
mSearchFeatureProvider.updateIndex(activity);
|
||||
} else {
|
||||
Log.w(TAG, "Cannot update the Indexer as we are running low on storage space!");
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@@ -113,4 +113,16 @@ public class SearchFragmentTest {
|
||||
verify(mFeatureFactory.searchFeatureProvider)
|
||||
.getInstalledAppSearchLoader(any(Context.class), anyString());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void updateIndex_TriggerOnCreate() {
|
||||
ActivityController<SearchActivity> activityController =
|
||||
Robolectric.buildActivity(SearchActivity.class);
|
||||
activityController.setup();
|
||||
SearchFragment fragment = (SearchFragment) activityController.get().getFragmentManager()
|
||||
.findFragmentById(R.id.main_content);
|
||||
|
||||
fragment.onAttach(null);
|
||||
verify(mFeatureFactory.searchFeatureProvider).updateIndex(any(Context.class));
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user