diff options
author | Danny Baumann <dannybaumann@web.de> | 2015-04-01 14:32:50 +0200 |
---|---|---|
committer | Danny Baumann <dannybaumann@web.de> | 2015-04-01 15:03:41 +0200 |
commit | 3dcbbb1c59236f176dc4933bbffbe2dc9ef198ba (patch) | |
tree | f52e7b0019b4affc9e5174fed825a7497c8ef361 | |
parent | f0ac9506c0447e93eb5c2bdea23c06c2e5ca0584 (diff) | |
download | android_packages_apps_ContactsCommon-3dcbbb1c59236f176dc4933bbffbe2dc9ef198ba.tar.gz android_packages_apps_ContactsCommon-3dcbbb1c59236f176dc4933bbffbe2dc9ef198ba.tar.bz2 android_packages_apps_ContactsCommon-3dcbbb1c59236f176dc4933bbffbe2dc9ef198ba.zip |
Fix dialer name ordering options not being respected on first load.
Do this by making sure the contact loader isn't started before
preferences are loaded.
Change-Id: Iaa589b65ccf5757e25b7d4f1beb9a7496797280c
-rwxr-xr-x | src/com/android/contacts/common/list/ContactEntryListFragment.java | 31 |
1 files changed, 14 insertions, 17 deletions
diff --git a/src/com/android/contacts/common/list/ContactEntryListFragment.java b/src/com/android/contacts/common/list/ContactEntryListFragment.java index c7204931..e33f2272 100755 --- a/src/com/android/contacts/common/list/ContactEntryListFragment.java +++ b/src/com/android/contacts/common/list/ContactEntryListFragment.java @@ -150,11 +150,15 @@ public abstract class ContactEntryListFragment<T extends ContactEntryListAdapter private Context mContext; private LoaderManager mLoaderManager; + private boolean mIgnoreSimStateChange; private BroadcastReceiver mSIMStateReceiver = new BroadcastReceiver() { @Override - public void onReceive(Context arg0, Intent arg1) { - reloadData(); + public void onReceive(Context context, Intent intent) { + if (!mIgnoreSimStateChange) { + reloadData(); + } + mIgnoreSimStateChange = false; } }; @@ -266,13 +270,6 @@ public abstract class ContactEntryListFragment<T extends ContactEntryListAdapter mAdapter = createListAdapter(); mContactsPrefs = new ContactsPreferences(mContext); restoreSavedState(savedState); - - IntentFilter filter = new IntentFilter(); - filter.addAction(Intent.ACTION_AIRPLANE_MODE_CHANGED); - filter.addAction(TelephonyIntents.ACTION_SIM_STATE_CHANGED); - if (mContext != null) { - mContext.registerReceiver(mSIMStateReceiver, filter); - } } public void restoreSavedState(Bundle savedState) { @@ -311,6 +308,13 @@ public abstract class ContactEntryListFragment<T extends ContactEntryListAdapter mDirectoryListStatus = STATUS_NOT_LOADED; mLoadPriorityDirectoriesOnly = true; + IntentFilter filter = new IntentFilter(); + filter.addAction(Intent.ACTION_AIRPLANE_MODE_CHANGED); + filter.addAction(TelephonyIntents.ACTION_SIM_STATE_CHANGED); + // Make sure to not trigger a full reload by the sticky SIM state change + // broadcast delivery on registration + mIgnoreSimStateChange = mContext.registerReceiver(mSIMStateReceiver, filter) != null; + startLoading(); } @@ -487,14 +491,7 @@ public abstract class ContactEntryListFragment<T extends ContactEntryListAdapter super.onStop(); mContactsPrefs.unregisterChangeListener(); mAdapter.clearPartitions(); - } - - @Override - public void onDestroy() { - super.onDestroy(); - if (mContext != null) { - mContext.unregisterReceiver(mSIMStateReceiver); - } + mContext.unregisterReceiver(mSIMStateReceiver); } protected void reloadData() { |