Making UI.LIST_CONTACTS_WITH_PHONES_ACTION work with loaders/fragments.
Change-Id: If0929f2a06487ac60ca9632c6cb7d1ae3a59e5a3
diff --git a/src/com/android/contacts/ContactsListActivity.java b/src/com/android/contacts/ContactsListActivity.java
index 9e3f067..7ee3908 100644
--- a/src/com/android/contacts/ContactsListActivity.java
+++ b/src/com/android/contacts/ContactsListActivity.java
@@ -489,7 +489,7 @@
fragment.setContactsWithPhonesOnlyRestrictionEnabled(
mIntentResolver.isContactsWithPhonesOnlyRestrictionEnabled());
- fragment.setVisibleContactsRestrictionEnabled(
+ fragment.setVisibleContactsRestrictionEnabled(!mSearchResultsMode &&
mIntentResolver.isVisibleContactsRestrictionEnabled());
fragment.setOnContactListActionListener(new OnContactBrowserActionListener() {
diff --git a/src/com/android/contacts/list/ContactEntryListFragment.java b/src/com/android/contacts/list/ContactEntryListFragment.java
index 3ded6de..80187ad 100644
--- a/src/com/android/contacts/list/ContactEntryListFragment.java
+++ b/src/com/android/contacts/list/ContactEntryListFragment.java
@@ -110,7 +110,6 @@
private SearchEditText mSearchEditText;
private ContactListEmptyView mEmptyView;
private ProviderStatusLoader mProviderStatusLoader;
- private SharedPreferences mSharedPrefs;
private ContactsPreferences mContactsPrefs;
private int mProviderStatus = ProviderStatus.STATUS_NORMAL;
@@ -292,13 +291,11 @@
@Override
public void onStart() {
- if (mSharedPrefs == null) {
- Context activity = getActivity();
- mSharedPrefs = PreferenceManager.getDefaultSharedPreferences(activity);
- mContactsPrefs = new ContactsPreferences(activity);
+ if (mContactsPrefs == null) {
+ mContactsPrefs = new ContactsPreferences(getActivity());
}
- loadPreferences(mSharedPrefs, mContactsPrefs);
+ loadPreferences(mContactsPrefs);
configureAdapter();
mAdapter.configureLoader(mLoader);
@@ -314,7 +311,7 @@
configurePhotoLoader();
}
- protected void loadPreferences(SharedPreferences prefs, ContactsPreferences contactsPrefs) {
+ protected void loadPreferences(ContactsPreferences contactsPrefs) {
setContactNameDisplayOrder(contactsPrefs.getDisplayOrder());
setSortOrder(contactsPrefs.getSortOrder());
}
diff --git a/src/com/android/contacts/list/ContactsIntentResolver.java b/src/com/android/contacts/list/ContactsIntentResolver.java
index 3f8b524..a43b525 100644
--- a/src/com/android/contacts/list/ContactsIntentResolver.java
+++ b/src/com/android/contacts/list/ContactsIntentResolver.java
@@ -19,15 +19,19 @@
import com.android.contacts.ContactsSearchManager;
import com.android.contacts.JoinContactActivity;
import com.android.contacts.R;
+import com.android.contacts.ui.ContactsPreferences;
+import com.android.contacts.ui.ContactsPreferencesActivity.Prefs;
import android.app.Activity;
import android.app.SearchManager;
import android.content.ContentUris;
import android.content.Intent;
+import android.content.SharedPreferences;
import android.content.UriMatcher;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
+import android.preference.PreferenceManager;
import android.provider.ContactsContract;
import android.provider.Contacts.ContactMethods;
import android.provider.Contacts.People;
@@ -476,6 +480,15 @@
}
public boolean isContactsWithPhonesOnlyRestrictionEnabled() {
- return mMode != MODE_CUSTOM;
+ if (mMode == MODE_CUSTOM) {
+ return mDisplayOnlyPhones;
+ }
+
+ if (mMode == MODE_DEFAULT) {
+ SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(mContext);
+ return prefs.getBoolean(Prefs.DISPLAY_ONLY_PHONES, Prefs.DISPLAY_ONLY_PHONES_DEFAULT);
+ }
+
+ return false;
}
}
diff --git a/src/com/android/contacts/list/DefaultContactBrowseListFragment.java b/src/com/android/contacts/list/DefaultContactBrowseListFragment.java
index 12de913..9ea68b7 100644
--- a/src/com/android/contacts/list/DefaultContactBrowseListFragment.java
+++ b/src/com/android/contacts/list/DefaultContactBrowseListFragment.java
@@ -16,10 +16,7 @@
package com.android.contacts.list;
import com.android.contacts.R;
-import com.android.contacts.ui.ContactsPreferences;
-import com.android.contacts.ui.ContactsPreferencesActivity.Prefs;
-import android.content.SharedPreferences;
import android.database.Cursor;
import android.view.LayoutInflater;
import android.view.View;
@@ -34,8 +31,7 @@
private boolean mEditMode;
private boolean mCreateContactEnabled;
- private boolean mContactsWithPhoneNumbersOnly;
- private boolean mContactsWithPhonesOnlyRestrictionEnabled = true;
+ private boolean mContactsWithPhonesOnlyRestrictionEnabled;
private boolean mVisibleContactsRestrictionEnabled = true;
// TODO: Remove this horrible hack once the framework can lookup fragments via findFragmentById
@@ -50,33 +46,20 @@
@Override
protected void prepareEmptyView() {
- if (mContactsWithPhoneNumbersOnly) {
+ if (mContactsWithPhonesOnlyRestrictionEnabled) {
setEmptyText(R.string.noContactsWithPhoneNumbers);
} else {
super.prepareEmptyView();
}
}
- @Override
- protected void loadPreferences(SharedPreferences prefs, ContactsPreferences contactsPrefs) {
- super.loadPreferences(prefs, contactsPrefs);
-
- setContactsWithPhoneNumbersOnly(prefs.getBoolean(Prefs.DISPLAY_ONLY_PHONES,
- Prefs.DISPLAY_ONLY_PHONES_DEFAULT));
- }
-
- public void setContactsWithPhoneNumbersOnly(boolean flag) {
- mContactsWithPhoneNumbersOnly = flag;
- configureAdapter();
- }
-
public void setContactsWithPhonesOnlyRestrictionEnabled(boolean flag) {
- this.mContactsWithPhonesOnlyRestrictionEnabled = flag;
+ mContactsWithPhonesOnlyRestrictionEnabled = flag;
configureAdapter();
}
public void setVisibleContactsRestrictionEnabled(boolean flag) {
- this.mVisibleContactsRestrictionEnabled = flag;
+ mVisibleContactsRestrictionEnabled = flag;
configureAdapter();
}
@@ -115,10 +98,8 @@
DefaultContactListAdapter adapter = (DefaultContactListAdapter)getAdapter();
if (adapter != null) {
- adapter.setContactsWithPhoneNumbersOnly(mContactsWithPhoneNumbersOnly
- && mContactsWithPhonesOnlyRestrictionEnabled);
- adapter.setVisibleContactsOnly(!isSearchResultsMode()
- && mVisibleContactsRestrictionEnabled);
+ adapter.setContactsWithPhoneNumbersOnly(mContactsWithPhonesOnlyRestrictionEnabled);
+ adapter.setVisibleContactsOnly(mVisibleContactsRestrictionEnabled);
}
}