Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit aa85838f authored by Brandon Maxwell's avatar Brandon Maxwell Committed by Android (Google) Code Review
Browse files

Merge "Adding util to consolidate primary/alternative name choice" into ub-contactsdialer-a-dev

parents 22eda219 c1e02728
Loading
Loading
Loading
Loading
+39 −0
Original line number Diff line number Diff line
@@ -22,11 +22,14 @@ import android.content.Context;
import android.telephony.PhoneNumberUtils;
import android.text.Spannable;
import android.text.SpannableString;
import android.text.TextUtils;
import android.text.style.TtsSpan;
import android.util.Log;
import android.util.Patterns;

import com.android.contacts.common.R;
import com.android.contacts.common.preference.ContactsPreferences;
import com.android.contacts.common.testing.NeededForTesting;

import com.google.common.base.Preconditions;

@@ -220,4 +223,40 @@ public class ContactDisplayUtils {
        }
        return spannable;
    }

    /**
     * Returns either namePrimary or nameAlternative based on the value of displayOrderPreference
     *
     * In the event that nameAlternative is empty or displayOrderPreference is neither
     * {@link ContactsPreferences#DISPLAY_ORDER_PRIMARY} nor
     * {@link ContactsPreferences#DISPLAY_ORDER_ALTERNATIVE}, namePrimary is returned
     *
     * @param namePrimary the primary name
     * @param nameAlternative the alternative name
     * @param displayOrderPreference one of {@link ContactsPreferences#DISPLAY_ORDER_PRIMARY} or
     *          {@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,
            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;
    }
}
+23 −0
Original line number Diff line number Diff line
@@ -22,6 +22,7 @@ import android.test.AndroidTestCase;
import android.test.suitebuilder.annotation.SmallTest;

import com.android.contacts.common.R;
import com.android.contacts.common.preference.ContactsPreferences;

/**
 * Unit tests for (@link ContactDisplayUtils}
@@ -29,6 +30,9 @@ import com.android.contacts.common.R;
@SmallTest
public class ContactDisplayUtilTests extends AndroidTestCase {

    private static final String NAME_PRIMARY = "Name Primary";
    private static final String NAME_ALTERNATIVE = "Name Alternative";

    public void testIsCustomPhoneTypeReturnsTrue() {
        assertTrue(ContactDisplayUtils.isCustomPhoneType(Phone.TYPE_CUSTOM));
        assertTrue(ContactDisplayUtils.isCustomPhoneType(Phone.TYPE_ASSISTANT));
@@ -92,4 +96,23 @@ public class ContactDisplayUtilTests extends AndroidTestCase {
        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 testGetPreferredInvalidPreference() {
        assertEquals(NAME_PRIMARY, ContactDisplayUtils.getPreferredName(NAME_PRIMARY,
                NAME_ALTERNATIVE, -1));
    }

    public void testGetPreferredNamePrimary() {
        assertEquals(NAME_PRIMARY, ContactDisplayUtils.getPreferredName(NAME_PRIMARY,
                NAME_ALTERNATIVE, ContactsPreferences.DISPLAY_ORDER_PRIMARY));
    }

    public void testGetPreferredNameAlternative() {
        assertEquals(NAME_ALTERNATIVE, ContactDisplayUtils.getPreferredName(NAME_PRIMARY,
                NAME_ALTERNATIVE, ContactsPreferences.DISPLAY_ORDER_ALTERNATIVE));
    }
}