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() {