summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDanny Baumann <dannybaumann@web.de>2015-04-01 14:32:50 +0200
committerDanny Baumann <dannybaumann@web.de>2015-04-01 15:03:41 +0200
commit3dcbbb1c59236f176dc4933bbffbe2dc9ef198ba (patch)
treef52e7b0019b4affc9e5174fed825a7497c8ef361
parentf0ac9506c0447e93eb5c2bdea23c06c2e5ca0584 (diff)
downloadandroid_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-xsrc/com/android/contacts/common/list/ContactEntryListFragment.java31
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() {