From 5578d928bf777f721ec0ec04c84ddb7d3ea56edb Mon Sep 17 00:00:00 2001 From: twyen Date: Mon, 25 Jun 2018 12:36:26 -0700 Subject: Refactor ContactPreference Moving it outside contacts.commons reduces dependency to legacy code. Also removed redundant implementations such as caching SharedPreferences (it is already cached), custom ListPreferences (standard ListPreferences already have what we want), and corrected preference storage location (allow standard ListPreferences to work) TEST=TAP Test: TAP PiperOrigin-RevId: 202000393 Change-Id: I45374e610b3510784b5a4da92e5d8462cbfc92bb --- .../contactsfragment/ContactsCursorLoader.java | 27 +++++++++++++--------- .../dialer/contactsfragment/ContactsFragment.java | 12 +++------- 2 files changed, 19 insertions(+), 20 deletions(-) (limited to 'java/com/android/dialer/contactsfragment') diff --git a/java/com/android/dialer/contactsfragment/ContactsCursorLoader.java b/java/com/android/dialer/contactsfragment/ContactsCursorLoader.java index e55f95149..d74afe538 100644 --- a/java/com/android/dialer/contactsfragment/ContactsCursorLoader.java +++ b/java/com/android/dialer/contactsfragment/ContactsCursorLoader.java @@ -21,7 +21,7 @@ import android.content.CursorLoader; import android.net.Uri; import android.provider.ContactsContract.Contacts; import android.text.TextUtils; -import com.android.contacts.common.preference.ContactsPreferences; +import com.android.dialer.contacts.ContactsComponent; /** Cursor Loader for {@link ContactsFragment}. */ final class ContactsCursorLoader extends CursorLoader { @@ -61,12 +61,13 @@ final class ContactsCursorLoader extends CursorLoader { } private static String[] getProjection(Context context) { - ContactsPreferences contactsPrefs = new ContactsPreferences(context); - boolean displayOrderPrimary = - (contactsPrefs.getDisplayOrder() == ContactsPreferences.DISPLAY_ORDER_PRIMARY); - return displayOrderPrimary - ? CONTACTS_PROJECTION_DISPLAY_NAME_PRIMARY - : CONTACTS_PROJECTION_DISPLAY_NAME_ALTERNATIVE; + switch (ContactsComponent.get(context).contactDisplayPreferences().getDisplayOrder()) { + case PRIMARY: + return CONTACTS_PROJECTION_DISPLAY_NAME_PRIMARY; + case ALTERNATIVE: + return CONTACTS_PROJECTION_DISPLAY_NAME_ALTERNATIVE; + } + throw new AssertionError("exhaustive switch"); } private static String getWhere(Context context, boolean hasPhoneNumbers) { @@ -78,10 +79,14 @@ final class ContactsCursorLoader extends CursorLoader { } private static String getSortKey(Context context) { - ContactsPreferences contactsPrefs = new ContactsPreferences(context); - boolean sortOrderPrimary = - (contactsPrefs.getSortOrder() == ContactsPreferences.SORT_ORDER_PRIMARY); - return sortOrderPrimary ? Contacts.SORT_KEY_PRIMARY : Contacts.SORT_KEY_ALTERNATIVE; + + switch (ContactsComponent.get(context).contactDisplayPreferences().getSortOrder()) { + case BY_PRIMARY: + return Contacts.SORT_KEY_PRIMARY; + case BY_ALTERNATIVE: + return Contacts.SORT_KEY_ALTERNATIVE; + } + throw new AssertionError("exhaustive switch"); } /** Update cursor loader to filter contacts based on the provided query. */ diff --git a/java/com/android/dialer/contactsfragment/ContactsFragment.java b/java/com/android/dialer/contactsfragment/ContactsFragment.java index 794a5b91c..f40abec0d 100644 --- a/java/com/android/dialer/contactsfragment/ContactsFragment.java +++ b/java/com/android/dialer/contactsfragment/ContactsFragment.java @@ -41,8 +41,6 @@ import android.view.View.OnScrollChangeListener; import android.view.ViewGroup; import android.widget.ImageView; import android.widget.TextView; -import com.android.contacts.common.preference.ContactsPreferences; -import com.android.contacts.common.preference.ContactsPreferences.ChangeListener; import com.android.dialer.common.Assert; import com.android.dialer.common.FragmentUtils; import com.android.dialer.common.LogUtil; @@ -60,8 +58,7 @@ import java.util.Arrays; public class ContactsFragment extends Fragment implements LoaderCallbacks, OnScrollChangeListener, - OnEmptyViewActionButtonClickedListener, - ChangeListener { + OnEmptyViewActionButtonClickedListener { /** An enum for the different types of headers that be inserted at position 0 in the list. */ @Retention(RetentionPolicy.SOURCE) @@ -98,7 +95,6 @@ public class ContactsFragment extends Fragment private @Header int header; - private ContactsPreferences contactsPrefs; private boolean hasPhoneNumbers; private String query; @@ -154,8 +150,6 @@ public class ContactsFragment extends Fragment @Override public void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); - contactsPrefs = new ContactsPreferences(getContext()); - contactsPrefs.registerChangeListener(this); header = getArguments().getInt(EXTRA_HEADER); hasPhoneNumbers = getArguments().getBoolean(EXTRA_HAS_PHONE_NUMBERS); if (savedInstanceState == null) { @@ -224,7 +218,8 @@ public class ContactsFragment extends Fragment } @Override - public void onChange() { + public void onResume() { + super.onResume(); if (getActivity() != null && isAdded() && PermissionsUtil.hasContactsReadPermissions(getContext())) { @@ -268,7 +263,6 @@ public class ContactsFragment extends Fragment recyclerView.setAdapter(null); recyclerView.setOnScrollChangeListener(null); adapter = null; - contactsPrefs.unregisterChangeListener(); } /* -- cgit v1.2.3