Adding method to choose namePrimary or nameAlt for sorting purposes

Change-Id: Ic0a1a6d9fc378a68bad6368a65b54c999878f462
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));
+    }
 }