SearchFeatureProvider's context field is removed
SearchFeatureProvider was holding on to a context and
outlived the SettingsActivity, thus leaking the activity.
The context was passed into most methods, and thus it
makes more sense to pass it in to every method.
Bug: 33677967
Test: Run MakeSettingsRoboTests
Change-Id: Ia82f30e7e0b83587b4baeef28e81da6b8e4303fe
diff --git a/src/com/android/settings/SettingsActivity.java b/src/com/android/settings/SettingsActivity.java
index aa76517..cc203f7 100644
--- a/src/com/android/settings/SettingsActivity.java
+++ b/src/com/android/settings/SettingsActivity.java
@@ -329,7 +329,7 @@
}
MenuInflater inflater = getMenuInflater();
- if (mSearchFeatureProvider.isEnabled()) {
+ if (mSearchFeatureProvider.isEnabled(this)) {
mSearchFeatureProvider.setUpSearchMenu(menu, this);
return true;
}
@@ -405,7 +405,7 @@
final FeatureFactory factory = FeatureFactory.getFactory(this);
mDashboardFeatureProvider = factory.getDashboardFeatureProvider(this);
- mSearchFeatureProvider = factory.getSearchFeatureProvider(this);
+ mSearchFeatureProvider = factory.getSearchFeatureProvider();
// Should happen before any call to getIntent()
getMetaData();
@@ -1097,7 +1097,7 @@
@Deprecated
@Override
public boolean onQueryTextSubmit(String query) {
- if (mSearchFeatureProvider.isEnabled()) {
+ if (mSearchFeatureProvider.isEnabled(this)) {
return false;
}
mSearchQuery = query;
@@ -1109,7 +1109,7 @@
@Override
public boolean onQueryTextChange(String newText) {
mSearchQuery = newText;
- if (mSearchFeatureProvider.isEnabled() || mSearchResultsFragment == null) {
+ if (mSearchFeatureProvider.isEnabled(this) || mSearchResultsFragment == null) {
return false;
}
return mSearchResultsFragment.onQueryTextChange(newText);
diff --git a/src/com/android/settings/overlay/FeatureFactory.java b/src/com/android/settings/overlay/FeatureFactory.java
index 364d5ed..0b8ee8e 100644
--- a/src/com/android/settings/overlay/FeatureFactory.java
+++ b/src/com/android/settings/overlay/FeatureFactory.java
@@ -81,7 +81,7 @@
public abstract EnterprisePrivacyFeatureProvider getEnterprisePrivacyFeatureProvider(
Context context);
- public abstract SearchFeatureProvider getSearchFeatureProvider(Context context);
+ public abstract SearchFeatureProvider getSearchFeatureProvider();
public abstract SurveyFeatureProvider getSurveyFeatureProvider(Context context);
diff --git a/src/com/android/settings/overlay/FeatureFactoryImpl.java b/src/com/android/settings/overlay/FeatureFactoryImpl.java
index 2aa9b34..c2d5d79 100644
--- a/src/com/android/settings/overlay/FeatureFactoryImpl.java
+++ b/src/com/android/settings/overlay/FeatureFactoryImpl.java
@@ -104,9 +104,9 @@
}
@Override
- public SearchFeatureProvider getSearchFeatureProvider(Context context) {
+ public SearchFeatureProvider getSearchFeatureProvider() {
if (mSearchFeatureProvider == null) {
- mSearchFeatureProvider = new SearchFeatureProviderImpl(context);
+ mSearchFeatureProvider = new SearchFeatureProviderImpl();
}
return mSearchFeatureProvider;
}
diff --git a/src/com/android/settings/search2/SearchFeatureProvider.java b/src/com/android/settings/search2/SearchFeatureProvider.java
index ad26eae..8a616a7 100644
--- a/src/com/android/settings/search2/SearchFeatureProvider.java
+++ b/src/com/android/settings/search2/SearchFeatureProvider.java
@@ -27,7 +27,7 @@
/**
* @return true to use the new version of search
*/
- boolean isEnabled();
+ boolean isEnabled(Context context);
/**
* Inserts the Menu items into Settings activity.
diff --git a/src/com/android/settings/search2/SearchFeatureProviderImpl.java b/src/com/android/settings/search2/SearchFeatureProviderImpl.java
index e2d25ad..acb90b7 100644
--- a/src/com/android/settings/search2/SearchFeatureProviderImpl.java
+++ b/src/com/android/settings/search2/SearchFeatureProviderImpl.java
@@ -31,16 +31,11 @@
* FeatureProvider for the refactored search code.
*/
public class SearchFeatureProviderImpl implements SearchFeatureProvider {
- protected Context mContext;
private DatabaseIndexingManager mDatabaseIndexingManager;
- public SearchFeatureProviderImpl(Context context) {
- mContext = context;
- }
-
@Override
- public boolean isEnabled() {
+ public boolean isEnabled(Context context) {
return false;
}
@@ -49,7 +44,7 @@
if (menu == null || activity == null) {
return;
}
- String menuTitle = mContext.getString(R.string.search_menu);
+ String menuTitle = activity.getString(R.string.search_menu);
MenuItem menuItem = menu.add(Menu.NONE, Menu.NONE, Menu.NONE, menuTitle)
.setIcon(R.drawable.abc_ic_search_api_material)
.setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() {
@@ -86,7 +81,7 @@
@Override
public void updateIndex(Context context) {
- if (isEnabled()) {
+ if (isEnabled(context)) {
getIndexingManager(context).update();
} else {
Index.getInstance(context).update();
diff --git a/src/com/android/settings/search2/SearchFragment.java b/src/com/android/settings/search2/SearchFragment.java
index fca52e9..1a4e6dc 100644
--- a/src/com/android/settings/search2/SearchFragment.java
+++ b/src/com/android/settings/search2/SearchFragment.java
@@ -66,7 +66,7 @@
public void onAttach(Context context) {
super.onAttach(context);
mSearchFeatureProvider = FeatureFactory.getFactory(context)
- .getSearchFeatureProvider(context);
+ .getSearchFeatureProvider();
}
@Override