Merge "Making DefaultContactBrowserListFragment auto-configured"
diff --git a/src/com/android/contacts/list/ContactEntryListFragment.java b/src/com/android/contacts/list/ContactEntryListFragment.java
index e301c3d..30eef5a 100644
--- a/src/com/android/contacts/list/ContactEntryListFragment.java
+++ b/src/com/android/contacts/list/ContactEntryListFragment.java
@@ -27,6 +27,7 @@
 
 import android.accounts.Account;
 import android.accounts.AccountManager;
+import android.app.Activity;
 import android.app.patterns.CursorLoader;
 import android.app.patterns.Loader;
 import android.app.patterns.LoaderManagingFragment;
@@ -214,6 +215,7 @@
 
     public void setPhotoLoaderEnabled(boolean flag) {
         mPhotoLoaderEnabled = flag;
+        configurePhotoLoader();
     }
 
     public boolean isPhotoLoaderEnabled() {
@@ -222,6 +224,7 @@
 
     public void setSearchMode(boolean flag) {
         mSearchMode = flag;
+        configureSearchEditText();
     }
 
     public boolean isSearchMode() {
@@ -230,6 +233,7 @@
 
     public void setSearchResultsMode(boolean flag) {
         mSearchResultsMode = flag;
+        configureSearchEditText();
     }
 
     public boolean isSearchResultsMode() {
@@ -306,6 +310,12 @@
         super.onStart();
     }
 
+    @Override
+    public void onAttach(Activity activity) {
+        super.onAttach(activity);
+        configurePhotoLoader();
+    }
+
     protected void loadPreferences(SharedPreferences prefs, ContactsPreferences contactsPrefs) {
         setContactNameDisplayOrder(contactsPrefs.getDisplayOrder());
         setSortOrder(contactsPrefs.getSortOrder());
@@ -317,11 +327,8 @@
         mAdapter = createListAdapter();
         mAdapter.setSearchMode(isSearchMode());
         mAdapter.setSearchResultsMode(isSearchResultsMode());
-
+        mAdapter.setPhotoLoader(mPhotoLoader);
         mListView.setAdapter(mAdapter);
-        if (isPhotoLoaderEnabled()) {
-            mAdapter.setPhotoLoader(mPhotoLoader);
-        }
 
         return mView;
     }
@@ -359,28 +366,44 @@
             mListView.setOnCreateContextMenuListener(mContextMenuAdapter);
         }
 
-        if (isPhotoLoaderEnabled()) {
-            mPhotoLoader =
-                new ContactPhotoLoader(getActivity(), R.drawable.ic_contact_list_picture);
-            mListView.setOnScrollListener(this);
-        }
+        configurePhotoLoader();
+        configureSearchEditText();
+        configureSearchResultText();
+        return mView;
+    }
 
-        if (isSearchMode()) {
-            mSearchEditText = (SearchEditText)mView.findViewById(R.id.search_src_text);
-            mSearchEditText.setText(getQueryString());
-            mSearchEditText.addTextChangedListener(this);
-            mSearchEditText.setOnEditorActionListener(this);
-            mSearchEditText.setOnCloseListener(this);
+    protected void configurePhotoLoader() {
+        Activity activity = getActivity();
+        if (isPhotoLoaderEnabled() && activity != null) {
+            if (mPhotoLoader == null) {
+                mPhotoLoader = new ContactPhotoLoader(activity, R.drawable.ic_contact_list_picture);
+            }
+            if (mListView != null) {
+                mListView.setOnScrollListener(this);
+            }
+            if (mAdapter != null) {
+                mAdapter.setPhotoLoader(mPhotoLoader);
+            }
         }
+    }
 
-        if (isSearchResultsMode()) {
+    protected void configureSearchResultText() {
+        if (isSearchResultsMode() && mView != null) {
             TextView titleText = (TextView)mView.findViewById(R.id.search_results_for);
             if (titleText != null) {
                 titleText.setText(Html.fromHtml(getActivity().getString(R.string.search_results_for,
                         "<b>" + getQueryString() + "</b>")));
             }
         }
-        return mView;
+    }
+    protected void configureSearchEditText() {
+        if (isSearchMode() && mView != null) {
+            mSearchEditText = (SearchEditText)mView.findViewById(R.id.search_src_text);
+            mSearchEditText.setText(getQueryString());
+            mSearchEditText.addTextChangedListener(this);
+            mSearchEditText.setOnEditorActionListener(this);
+            mSearchEditText.setOnCloseListener(this);
+        }
     }
 
     protected void configureAdapter() {
diff --git a/src/com/android/contacts/list/DefaultContactBrowseListFragment.java b/src/com/android/contacts/list/DefaultContactBrowseListFragment.java
index d9f87f4..3bf4a3e 100644
--- a/src/com/android/contacts/list/DefaultContactBrowseListFragment.java
+++ b/src/com/android/contacts/list/DefaultContactBrowseListFragment.java
@@ -36,6 +36,10 @@
     private boolean mCreateContactEnabled;
     private boolean mContactsWithPhoneNumbersOnly;
 
+    public DefaultContactBrowseListFragment() {
+        setPhotoLoaderEnabled(true);
+    }
+
     @Override
     protected void prepareEmptyView() {
         if (mContactsWithPhoneNumbersOnly) {