Reloading contact list after settings change
Bug: 3151551
Change-Id: I384cafb655b278b694f985e2fb74ad0b780a3e3f
diff --git a/src/com/android/contacts/activities/ContactBrowserActivity.java b/src/com/android/contacts/activities/ContactBrowserActivity.java
index aa8b80d..2106f44 100644
--- a/src/com/android/contacts/activities/ContactBrowserActivity.java
+++ b/src/com/android/contacts/activities/ContactBrowserActivity.java
@@ -878,8 +878,6 @@
}
case SUBACTIVITY_SETTINGS:
- // TODO: Force the ListFragment to reload its setting and update (don't lookup
- // directories here)
break;
// TODO: Using the new startActivityWithResultFromFragment API this should not be needed
diff --git a/src/com/android/contacts/list/ContactEntryListFragment.java b/src/com/android/contacts/list/ContactEntryListFragment.java
index fe80c3c..46597d1 100644
--- a/src/com/android/contacts/list/ContactEntryListFragment.java
+++ b/src/com/android/contacts/list/ContactEntryListFragment.java
@@ -290,14 +290,13 @@
mProviderStatusLoader = new ProviderStatusLoader(mContext);
}
- loadPreferences();
+ mForceLoad = loadPreferences();
if (mListView instanceof ContactEntryListView) {
ContactEntryListView listView = (ContactEntryListView)mListView;
listView.setSelectionVisible(isSelectionVisible());
}
- mForceLoad = false;
mDirectoryListStatus = STATUS_NOT_LOADED;
mLoadPriorityDirectoriesOnly = true;
@@ -637,13 +636,24 @@
return mContextMenuAdapter;
}
- protected void loadPreferences() {
- setContactNameDisplayOrder(mContactsPrefs.getDisplayOrder());
- setSortOrder(mContactsPrefs.getSortOrder());
+ protected boolean loadPreferences() {
+ boolean changed = false;
+ if (getContactNameDisplayOrder() != mContactsPrefs.getDisplayOrder()) {
+ setContactNameDisplayOrder(mContactsPrefs.getDisplayOrder());
+ changed = true;
+ }
+
+ if (getSortOrder() != mContactsPrefs.getSortOrder()) {
+ setSortOrder(mContactsPrefs.getSortOrder());
+ changed = true;
+ }
+
if (mListView instanceof ContactEntryListView) {
ContactEntryListView listView = (ContactEntryListView)mListView;
listView.setHighlightNamesWhenScrolling(isNameHighlighingEnabled());
}
+
+ return changed;
}
@Override