Fixing per-filter selection persistence on orientation change

Change-Id: I7706f768ec60506e24ffd96932d6c637b91b8234
diff --git a/src/com/android/contacts/list/ContactBrowseListFragment.java b/src/com/android/contacts/list/ContactBrowseListFragment.java
index 3d5e63f..6f06c82 100644
--- a/src/com/android/contacts/list/ContactBrowseListFragment.java
+++ b/src/com/android/contacts/list/ContactBrowseListFragment.java
@@ -171,6 +171,7 @@
 
         mFilter = filter;
         saveFilter();
+        mSelectedContactUri = null;
         restoreSelectedUri(true);
         reloadData();
     }
@@ -206,6 +207,7 @@
     @Override
     public void onSaveInstanceState(Bundle outState) {
         super.onSaveInstanceState(outState);
+        outState.putBoolean(KEY_PERSISTENT_SELECTION_ENABLED, mPersistentSelectionEnabled);
         outState.putBoolean(KEY_FILTER_ENABLED, mFilterEnabled);
         outState.putParcelable(KEY_FILTER, mFilter);
         outState.putParcelable(KEY_SELECTED_URI, mSelectedContactUri);
@@ -310,7 +312,7 @@
                 if (adapter != null) {
                     adapter.setSelectedContact(
                             mSelectedContactDirectoryId, mSelectedContactLookupKey);
-                    adapter.notifyDataSetChanged();
+                    getListView().invalidateViews();
                 }
             }
 
@@ -408,7 +410,7 @@
             requestSelectionToScreen();
         }
 
-        adapter.notifyDataSetChanged();
+        getListView().invalidateViews();
 
         if (mListener != null) {
             mListener.onSelectionChange();