Fixing NPE and a race condition on initial load

Change-Id: Iab48097299f36366fae0849baa115feaa497b55b
diff --git a/src/com/android/contacts/activities/ContactBrowserActivity.java b/src/com/android/contacts/activities/ContactBrowserActivity.java
index 2106f44..1ebac7b 100644
--- a/src/com/android/contacts/activities/ContactBrowserActivity.java
+++ b/src/com/android/contacts/activities/ContactBrowserActivity.java
@@ -384,6 +384,10 @@
      * Restores filter-specific persistent selection.
      */
     private void restoreListSelection() {
+        if (mListFragment == null) {
+            return;
+        }
+
         if (mListFragment instanceof DefaultContactBrowseListFragment
                 && mContactListFilterController != null
                 && mContactListFilterController.isLoaded()) {
@@ -392,9 +396,10 @@
             fragment.setFilter(mContactListFilterController.getFilter());
             fragment.restoreSelectedUri(mPrefs);
             fragment.requestSelectionOnScreen(false);
-        }
-
-        if (mContactContentDisplayed) {
+            if (mContactContentDisplayed) {
+                setupContactDetailFragment(mListFragment.getSelectedContactUri());
+            }
+        } else if (mContactContentDisplayed) {
             setupContactDetailFragment(mListFragment.getSelectedContactUri());
         }
     }