private String getPreferredSortName(ContactEntry contactEntry) { if (mContactsPreferences.getSortOrder() == ContactsPreferences.SORT_ORDER_PRIMARY || TextUtils.isEmpty(contactEntry.nameAlternative)) { return contactEntry.namePrimary; } return contactEntry.nameAlternative; } };
@Override public CharSequence getSummary() { switch (mPreferences.getSortOrder()) { case ContactsPreferences.SORT_ORDER_PRIMARY: return mContext.getString(R.string.display_options_sort_by_given_name); case ContactsPreferences.SORT_ORDER_ALTERNATIVE: return mContext.getString(R.string.display_options_sort_by_family_name); } return null; }
/** * Returns either namePrimary or nameAlternative based on the {@link ContactsPreferences}. * Defaults to the name that is non-null. * * @param namePrimary the primary name. * @param nameAlternative the alternative name. * @param contactsPreferences the ContactsPreferences used to determine the preferred sort * order. * @return namePrimary or nameAlternative depending on the value of displayOrderPreference. */ public static String getPreferredSortName(String namePrimary, String nameAlternative, @Nullable ContactsPreferences contactsPreferences) { if (contactsPreferences == null) { return namePrimary != null ? namePrimary : nameAlternative; } if (contactsPreferences.getSortOrder() == ContactsPreferences.SORT_ORDER_PRIMARY) { return namePrimary; } if (contactsPreferences.getSortOrder() == ContactsPreferences.SORT_ORDER_ALTERNATIVE && !TextUtils.isEmpty(nameAlternative)) { return nameAlternative; } return namePrimary; } }
@Override protected boolean persistString(String value) { int newValue = Integer.parseInt(value); if (newValue != mPreferences.getSortOrder()) { mPreferences.setSortOrder(newValue); notifyChanged(); } return true; }
private void prepare() { mContext = getContext(); mPreferences = new ContactsPreferences(mContext); setEntries(new String[]{ mContext.getString(R.string.display_options_sort_by_given_name), mContext.getString(R.string.display_options_sort_by_family_name), }); setEntryValues(new String[]{ String.valueOf(ContactsPreferences.SORT_ORDER_PRIMARY), String.valueOf(ContactsPreferences.SORT_ORDER_ALTERNATIVE), }); setValue(String.valueOf(mPreferences.getSortOrder())); }
/** * Forces the value for the given key to be looked up from shared preferences and notifies * the registered {@link ChangeListener} * * @param key the {@link SharedPreferences} key to look up */ public void refreshValue(String key) { if (DISPLAY_ORDER_KEY.equals(key)) { mDisplayOrder = PREFERENCE_UNASSIGNED; mDisplayOrder = getDisplayOrder(); } else if (SORT_ORDER_KEY.equals(key)) { mSortOrder = PREFERENCE_UNASSIGNED; mSortOrder = getSortOrder(); } else if (mDefaultAccountKey.equals(key)) { mDefaultAccount = null; mDefaultAccount = getDefaultAccount(); } if (mListener != null) mListener.onChange(); }
protected boolean loadPreferences() { boolean changed = false; if (getContactNameDisplayOrder() != mContactsPrefs.getDisplayOrder()) { setContactNameDisplayOrder(mContactsPrefs.getDisplayOrder()); changed = true; } if (getSortOrder() != mContactsPrefs.getSortOrder()) { setSortOrder(mContactsPrefs.getSortOrder()); changed = true; } return changed; }