Merge "Add About Settings in Contacts App. (1)" into ub-contactsdialer-a-dev
diff --git a/src/com/android/contacts/common/editor/SelectAccountDialogFragment.java b/src/com/android/contacts/common/editor/SelectAccountDialogFragment.java
index c2ebbbf..d4a23f0 100644
--- a/src/com/android/contacts/common/editor/SelectAccountDialogFragment.java
+++ b/src/com/android/contacts/common/editor/SelectAccountDialogFragment.java
@@ -24,6 +24,7 @@
import android.content.DialogInterface;
import android.os.Bundle;
+import com.android.contacts.common.R;
import com.android.contacts.common.model.account.AccountWithDataSet;
import com.android.contacts.common.util.AccountsListAdapter;
import com.android.contacts.common.util.AccountsListAdapter.AccountListFilter;
@@ -76,6 +77,7 @@
final AccountListFilter filter = (AccountListFilter) args.getSerializable(KEY_LIST_FILTER);
final AccountsListAdapter accountAdapter = new AccountsListAdapter(builder.getContext(),
filter);
+ accountAdapter.setCustomLayout(R.layout.account_selector_list_item_condensed);
final DialogInterface.OnClickListener clickListener =
new DialogInterface.OnClickListener() {
diff --git a/src/com/android/contacts/common/util/AccountSelectionUtil.java b/src/com/android/contacts/common/util/AccountSelectionUtil.java
index ccbc204..5221f4f 100644
--- a/src/com/android/contacts/common/util/AccountSelectionUtil.java
+++ b/src/com/android/contacts/common/util/AccountSelectionUtil.java
@@ -28,6 +28,7 @@
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
+import android.widget.ImageView;
import android.widget.TextView;
import com.android.contacts.common.R;
@@ -111,30 +112,28 @@
final LayoutInflater dialogInflater = (LayoutInflater)dialogContext
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
final ArrayAdapter<AccountWithDataSet> accountAdapter =
- new ArrayAdapter<AccountWithDataSet>(context, android.R.layout.simple_list_item_2,
- writableAccountList) {
-
+ new ArrayAdapter<AccountWithDataSet>(
+ context, R.layout.account_selector_list_item_condensed, writableAccountList) {
@Override
public View getView(int position, View convertView, ViewGroup parent) {
if (convertView == null) {
convertView = dialogInflater.inflate(
- android.R.layout.simple_list_item_2,
+ R.layout.account_selector_list_item_condensed,
parent, false);
}
- // TODO: show icon along with title
- final TextView text1 =
- (TextView)convertView.findViewById(android.R.id.text1);
- final TextView text2 =
- (TextView)convertView.findViewById(android.R.id.text2);
+ final TextView text1 = (TextView) convertView.findViewById(android.R.id.text1);
+ final TextView text2 = (TextView) convertView.findViewById(android.R.id.text2);
+ final ImageView icon = (ImageView) convertView.findViewById(android.R.id.icon);
final AccountWithDataSet account = this.getItem(position);
final AccountType accountType = accountTypes.getAccountType(
account.type, account.dataSet);
final Context context = getContext();
- text1.setText(account.name);
- text2.setText(accountType.getDisplayLabel(context));
+ text1.setText(accountType.getDisplayLabel(context));
+ text2.setText(account.name);
+ icon.setImageDrawable(accountType.getDisplayIcon(getContext()));
return convertView;
}
diff --git a/src/com/android/contacts/common/util/AccountsListAdapter.java b/src/com/android/contacts/common/util/AccountsListAdapter.java
index 84435df..2c7a349 100644
--- a/src/com/android/contacts/common/util/AccountsListAdapter.java
+++ b/src/com/android/contacts/common/util/AccountsListAdapter.java
@@ -41,6 +41,7 @@
private final List<AccountWithDataSet> mAccounts;
private final AccountTypeManager mAccountTypes;
private final Context mContext;
+ private int mCustomLayout = -1;
/**
* Filters that affect the list of accounts that is displayed by this adapter.
@@ -81,10 +82,15 @@
accountListFilter == AccountListFilter.ACCOUNTS_CONTACT_WRITABLE));
}
+ public void setCustomLayout(int customLayout) {
+ mCustomLayout = customLayout;
+ }
+
@Override
public View getView(int position, View convertView, ViewGroup parent) {
- final View resultView = convertView != null ? convertView
- : mInflater.inflate(R.layout.account_selector_list_item, parent, false);
+ final View resultView = convertView != null ? convertView :
+ mInflater.inflate(mCustomLayout > 0 ? mCustomLayout :
+ R.layout.account_selector_list_item, parent, false);
final TextView text1 = (TextView) resultView.findViewById(android.R.id.text1);
final TextView text2 = (TextView) resultView.findViewById(android.R.id.text2);
diff --git a/src/com/android/contacts/common/util/ContactDisplayUtils.java b/src/com/android/contacts/common/util/ContactDisplayUtils.java
index ca5fdbd..934ba25 100644
--- a/src/com/android/contacts/common/util/ContactDisplayUtils.java
+++ b/src/com/android/contacts/common/util/ContactDisplayUtils.java
@@ -18,6 +18,8 @@
import static android.provider.ContactsContract.CommonDataKinds.Phone;
+import com.google.common.base.Preconditions;
+
import android.content.Context;
import android.telephony.PhoneNumberUtils;
import android.text.Spannable;
@@ -31,8 +33,6 @@
import com.android.contacts.common.preference.ContactsPreferences;
import com.android.contacts.common.testing.NeededForTesting;
-import com.google.common.base.Preconditions;
-
/**
* Methods for handling various contact data labels.
*/
@@ -237,26 +237,44 @@
* {@link ContactsPreferences#DISPLAY_ORDER_ALTERNATIVE}
* @return namePrimary or nameAlternative depending on the value of displayOrderPreference
*/
- @NeededForTesting // TODO Temporary until used in source
- public static String getPreferredName(String namePrimary, String nameAlternative,
+ public static String getPreferredDisplayName(String namePrimary, String nameAlternative,
int displayOrderPreference) {
- if (TextUtils.isEmpty(nameAlternative)) {
- Log.d(TAG, "nameAlternative was empty - defaulting to primary");
- return namePrimary;
- }
-
- if (displayOrderPreference != ContactsPreferences.DISPLAY_ORDER_PRIMARY
- && displayOrderPreference != ContactsPreferences.DISPLAY_ORDER_ALTERNATIVE) {
- Log.d(TAG, "Attempted to get preferredName with invalid preference "
- + "- defaulting to primary");
- return namePrimary;
- }
-
-
if (displayOrderPreference == ContactsPreferences.DISPLAY_ORDER_PRIMARY) {
return namePrimary;
}
- return nameAlternative;
+ if (displayOrderPreference == ContactsPreferences.DISPLAY_ORDER_ALTERNATIVE &&
+ !TextUtils.isEmpty(nameAlternative)) {
+ return nameAlternative;
+ }
+
+ return namePrimary;
+ }
+
+ /**
+ * Returns either namePrimary or nameAlternative based on the value of sortOrderPreference
+ *
+ * In the event that nameAlternative is empty or sortOrderPreference is neither
+ * {@link ContactsPreferences#SORT_ORDER_PRIMARY} nor
+ * {@link ContactsPreferences#SORT_ORDER_ALTERNATIVE}, namePrimary is returned
+ *
+ * @param namePrimary the primary name
+ * @param nameAlternative the alternative name
+ * @param sortOrderPreference one of {@link ContactsPreferences#SORT_ORDER_PRIMARY} or
+ * {@link ContactsPreferences#SORT_ORDER_ALTERNATIVE}
+ * @return namePrimary or nameAlternative depending on the value of displayOrderPreference
+ */
+ public static String getPreferredSortName(String namePrimary, String nameAlternative,
+ int sortOrderPreference) {
+ if (sortOrderPreference == ContactsPreferences.SORT_ORDER_PRIMARY) {
+ return namePrimary;
+ }
+
+ if (sortOrderPreference == ContactsPreferences.SORT_ORDER_ALTERNATIVE &&
+ !TextUtils.isEmpty(nameAlternative)) {
+ return nameAlternative;
+ }
+
+ return namePrimary;
}
}
diff --git a/tests/src/com/android/contacts/common/util/ContactDisplayUtilTests.java b/tests/src/com/android/contacts/common/util/ContactDisplayUtilTests.java
index 3871b7c..a8e3038 100644
--- a/tests/src/com/android/contacts/common/util/ContactDisplayUtilTests.java
+++ b/tests/src/com/android/contacts/common/util/ContactDisplayUtilTests.java
@@ -96,23 +96,43 @@
assertEquals(R.string.sms_home, ContactDisplayUtils.getSmsLabelResourceId(Phone.TYPE_HOME));
}
- public void testGetPreferredNameEmptyAlternative() {
- assertEquals(NAME_PRIMARY, ContactDisplayUtils.getPreferredName(NAME_PRIMARY, "",
- ContactsPreferences.DISPLAY_ORDER_PRIMARY));
+ public void testGetPreferredDisplayNameEmptyAlternative() {
+ assertEquals(NAME_PRIMARY, ContactDisplayUtils.getPreferredDisplayName(NAME_PRIMARY, "",
+ ContactsPreferences.DISPLAY_ORDER_ALTERNATIVE));
}
- public void testGetPreferredInvalidPreference() {
- assertEquals(NAME_PRIMARY, ContactDisplayUtils.getPreferredName(NAME_PRIMARY,
+ public void testGetPreferredDisplayNameInvalidPreference() {
+ assertEquals(NAME_PRIMARY, ContactDisplayUtils.getPreferredDisplayName(NAME_PRIMARY,
NAME_ALTERNATIVE, -1));
}
- public void testGetPreferredNamePrimary() {
- assertEquals(NAME_PRIMARY, ContactDisplayUtils.getPreferredName(NAME_PRIMARY,
+ public void testGetPreferredDisplayNamePrimary() {
+ assertEquals(NAME_PRIMARY, ContactDisplayUtils.getPreferredDisplayName(NAME_PRIMARY,
NAME_ALTERNATIVE, ContactsPreferences.DISPLAY_ORDER_PRIMARY));
}
- public void testGetPreferredNameAlternative() {
- assertEquals(NAME_ALTERNATIVE, ContactDisplayUtils.getPreferredName(NAME_PRIMARY,
+ public void testGetPreferredDisplayNameAlternative() {
+ assertEquals(NAME_ALTERNATIVE, ContactDisplayUtils.getPreferredDisplayName(NAME_PRIMARY,
NAME_ALTERNATIVE, ContactsPreferences.DISPLAY_ORDER_ALTERNATIVE));
}
+
+ public void testGetPreferredSortNameEmptyAlternative() {
+ assertEquals(NAME_PRIMARY, ContactDisplayUtils.getPreferredSortName(NAME_PRIMARY, "",
+ ContactsPreferences.SORT_ORDER_ALTERNATIVE));
+ }
+
+ public void testGetPreferredSortNameInvalidPreference() {
+ assertEquals(NAME_PRIMARY, ContactDisplayUtils.getPreferredSortName(NAME_PRIMARY,
+ NAME_ALTERNATIVE, -1));
+ }
+
+ public void testGetPreferredSortNamePrimary() {
+ assertEquals(NAME_PRIMARY, ContactDisplayUtils.getPreferredSortName(NAME_PRIMARY,
+ NAME_ALTERNATIVE, ContactsPreferences.SORT_ORDER_PRIMARY));
+ }
+
+ public void testGetPreferredSortNameAlternative() {
+ assertEquals(NAME_ALTERNATIVE, ContactDisplayUtils.getPreferredSortName(NAME_PRIMARY,
+ NAME_ALTERNATIVE, ContactsPreferences.SORT_ORDER_ALTERNATIVE));
+ }
}