Merge "Let Phone UI reload filter on onStart()"
diff --git a/src/com/android/contacts/activities/DialtactsActivity.java b/src/com/android/contacts/activities/DialtactsActivity.java
index 23ca0c7..7d96973 100644
--- a/src/com/android/contacts/activities/DialtactsActivity.java
+++ b/src/com/android/contacts/activities/DialtactsActivity.java
@@ -409,6 +409,20 @@
}
}
+ @Override
+ public void onStart() {
+ super.onStart();
+ // Force filter reload to reflect possible filter changes done via People UI.
+ //
+ // Ideally both (People/Phone) UI should share the same instance for
+ // ContactListFilterController and they should be able to receive filter change event
+ // from the same controller (Bug 5165507)
+ mContactListFilterController.onStart(true);
+ if (mSearchFragment != null) {
+ mSearchFragment.setFilter(mContactListFilterController.getFilter());
+ }
+ }
+
private void prepareSearchView() {
final View searchViewLayout =
getLayoutInflater().inflate(R.layout.dialtacts_custom_action_bar, null);
diff --git a/src/com/android/contacts/activities/PeopleActivity.java b/src/com/android/contacts/activities/PeopleActivity.java
index 2815256..1d3fda4 100644
--- a/src/com/android/contacts/activities/PeopleActivity.java
+++ b/src/com/android/contacts/activities/PeopleActivity.java
@@ -427,7 +427,7 @@
*/
configureFragments(!mIsRecreatedInstance);
}
- mContactListFilterController.onStart();
+ mContactListFilterController.onStart(false);
super.onStart();
}
diff --git a/src/com/android/contacts/list/ContactListFilterController.java b/src/com/android/contacts/list/ContactListFilterController.java
index 87228a2..ead3a60 100644
--- a/src/com/android/contacts/list/ContactListFilterController.java
+++ b/src/com/android/contacts/list/ContactListFilterController.java
@@ -43,11 +43,15 @@
mContext = activity;
}
- public void onStart() {
- if (mFilter == null) {
+ /**
+ * @param forceFilterReload when true filter is reloaded even when there's already a cache
+ * for it.
+ */
+ public void onStart(boolean forceFilterReload) {
+ if (mFilter == null || forceFilterReload) {
mFilter = ContactListFilter.restoreDefaultPreferences(getSharedPreferences());
- mIsInitialized = true;
}
+ mIsInitialized = true;
}
public boolean isInitialized() {