Fixing a memory leak in ContactListFilterLoader
Bug: 3226188
Change-Id: I02c5287955e7f112b9c9a279dc8709ff41f09615
diff --git a/src/com/android/contacts/activities/ContactBrowserActivity.java b/src/com/android/contacts/activities/ContactBrowserActivity.java
index 957c6ab..a2c4c42 100644
--- a/src/com/android/contacts/activities/ContactBrowserActivity.java
+++ b/src/com/android/contacts/activities/ContactBrowserActivity.java
@@ -256,10 +256,16 @@
@Override
protected void onStart() {
- mContactListFilterController.startLoading();
+ mContactListFilterController.onStart();
super.onStart();
}
+ @Override
+ protected void onStop() {
+ mContactListFilterController.onStop();
+ super.onStop();
+ }
+
private void configureFragments(boolean fromRequest) {
boolean searchMode = mSearchMode;
if (fromRequest) {
diff --git a/src/com/android/contacts/list/ContactListFilterController.java b/src/com/android/contacts/list/ContactListFilterController.java
index a8c780b..919c799 100644
--- a/src/com/android/contacts/list/ContactListFilterController.java
+++ b/src/com/android/contacts/list/ContactListFilterController.java
@@ -101,13 +101,17 @@
return mFiltersLoaded;
}
- public void startLoading() {
+ public void onStart() {
if (mFilter == null) {
mFilter = ContactListFilter.restoreFromPreferences(getSharedPreferences());
}
mLoaderManager.initLoader(R.id.contact_list_filter_loader, null, this);
}
+ public void onStop() {
+ mLoaderManager.stopLoader(R.id.contact_list_filter_loader);
+ }
+
private SharedPreferences getSharedPreferences() {
return PreferenceManager.getDefaultSharedPreferences(mContext);
}