Merge "Fixing contact list definition for contact join activity"
diff --git a/src/com/android/contacts/ContactLoader.java b/src/com/android/contacts/ContactLoader.java
index 80519a5..471183e 100644
--- a/src/com/android/contacts/ContactLoader.java
+++ b/src/com/android/contacts/ContactLoader.java
@@ -961,7 +961,7 @@
     }
 
     @Override
-    public void startLoading() {
+    protected void onStartLoading() {
         if (mContact != null) {
             deliverResult(mContact);
         } else {
@@ -970,18 +970,18 @@
     }
 
     @Override
-    public void forceLoad() {
+    protected void onForceLoad() {
         final LoadContactTask task = new LoadContactTask();
         task.execute((Void[])null);
     }
 
     @Override
-    public void stopLoading() {
+    protected void onStopLoading() {
         unregisterObserver();
         mContact = null;
     }
 
-    public void reset() {
+    protected void onReset() {
         unregisterObserver();
         mContact = null;
         mDestroyed = true;
diff --git a/src/com/android/contacts/activities/ContactBrowserActivity.java b/src/com/android/contacts/activities/ContactBrowserActivity.java
index 5379209..4f1f353 100644
--- a/src/com/android/contacts/activities/ContactBrowserActivity.java
+++ b/src/com/android/contacts/activities/ContactBrowserActivity.java
@@ -146,6 +146,9 @@
         if (fragment instanceof ContactBrowseListFragment) {
             mListFragment = (ContactBrowseListFragment)fragment;
             mListFragment.setOnContactListActionListener(new ContactBrowserActionListener());
+            if (mContactListFilterController.isLoaded()) {
+                mListFragment.setFilter(mContactListFilterController.getFilter());
+            }
         } else if (fragment instanceof ContactDetailFragment) {
             mDetailFragment = (ContactDetailFragment)fragment;
             mDetailFragment.setListener(mDetailFragmentListener);
@@ -352,7 +355,7 @@
 
     @Override
     public void onContactListFiltersLoaded() {
-        if (mListFragment == null) {
+        if (mListFragment == null || !mListFragment.isAdded()) {
             return;
         }
 
@@ -363,7 +366,7 @@
 
     @Override
     public void onContactListFilterChanged() {
-        if (mListFragment == null) {
+        if (mListFragment == null || !mListFragment.isAdded()) {
             return;
         }
 
diff --git a/src/com/android/contacts/editor/ContactEditorFragment.java b/src/com/android/contacts/editor/ContactEditorFragment.java
index 2326021..a26204f 100644
--- a/src/com/android/contacts/editor/ContactEditorFragment.java
+++ b/src/com/android/contacts/editor/ContactEditorFragment.java
@@ -871,7 +871,7 @@
      * @param contactLookupUri the fresh URI for the currently edited contact (after saving it)
      */
     private void showJoinAggregateActivity(Uri contactLookupUri) {
-        if (contactLookupUri == null) {
+        if (contactLookupUri == null || !isAdded()) {
             return;
         }
 
diff --git a/src/com/android/contacts/list/ContactBrowseListFragment.java b/src/com/android/contacts/list/ContactBrowseListFragment.java
index 10c497d..251393c 100644
--- a/src/com/android/contacts/list/ContactBrowseListFragment.java
+++ b/src/com/android/contacts/list/ContactBrowseListFragment.java
@@ -167,7 +167,7 @@
             return;
         }
 
-        Log.v(TAG, "New filter: " + mFilter);
+        Log.v(TAG, "New filter: " + filter);
 
         mFilter = filter;
         saveFilter();
diff --git a/src/com/android/contacts/list/ContactListFilterLoader.java b/src/com/android/contacts/list/ContactListFilterLoader.java
index e2fdfda..ebc23d6 100644
--- a/src/com/android/contacts/list/ContactListFilterLoader.java
+++ b/src/com/android/contacts/list/ContactListFilterLoader.java
@@ -135,7 +135,7 @@
     }
 
     @Override
-    public void startLoading() {
+    protected void onStartLoading() {
         if (mObserver == null) {
             mObserver = new ForceLoadContentObserver();
             getContext().getContentResolver().registerContentObserver(
@@ -152,7 +152,7 @@
     }
 
     @Override
-    public void stopLoading() {
+    protected void onStopLoading() {
         if (mObserver != null) {
             getContext().getContentResolver().unregisterContentObserver(mObserver);
             mObserver = null;
@@ -168,7 +168,7 @@
     }
 
     @Override
-    public void reset() {
+    protected void onReset() {
         stopLoading();
     }
 }
diff --git a/src/com/android/contacts/list/DirectoryListLoader.java b/src/com/android/contacts/list/DirectoryListLoader.java
index b98762a..0bb250a 100644
--- a/src/com/android/contacts/list/DirectoryListLoader.java
+++ b/src/com/android/contacts/list/DirectoryListLoader.java
@@ -98,14 +98,14 @@
     }
 
     @Override
-    public void startLoading() {
+    protected void onStartLoading() {
         getContext().getContentResolver().
                 registerContentObserver(Directory.CONTENT_URI, false, mObserver);
         forceLoad();
     }
 
     @Override
-    public void stopLoading() {
+    protected void onStopLoading() {
         getContext().getContentResolver().unregisterContentObserver(mObserver);
     }
 
@@ -190,7 +190,7 @@
     }
 
     @Override
-    public void reset() {
+    protected void onReset() {
         stopLoading();
     }
 }