Fix phone number comparison in Phone Favorites.

This switches to using ContactsUtils.shouldCollapse for determining
whether we should combine the two numbers.

Bug 5294289

Change-Id: Id1ec369cfe698b52186ff392255d789458622e9d
diff --git a/src/com/android/contacts/ContactsUtils.java b/src/com/android/contacts/ContactsUtils.java
index f1f73ed..4de62b6 100644
--- a/src/com/android/contacts/ContactsUtils.java
+++ b/src/com/android/contacts/ContactsUtils.java
@@ -102,8 +102,8 @@
      * considered equal for collapsing in the GUI. For caller-id, use
      * {@link PhoneNumberUtils#compare(Context, String, String)} instead
      */
-    public static final boolean shouldCollapse(Context context, CharSequence mimetype1,
-            CharSequence data1, CharSequence mimetype2, CharSequence data2) {
+    public static final boolean shouldCollapse(CharSequence mimetype1, CharSequence data1,
+            CharSequence mimetype2, CharSequence data2) {
         // different mimetypes? don't collapse
         if (!TextUtils.equals(mimetype1, mimetype2)) return false;
 
diff --git a/src/com/android/contacts/detail/ContactDetailFragment.java b/src/com/android/contacts/detail/ContactDetailFragment.java
index 775b50a..e111620 100644
--- a/src/com/android/contacts/detail/ContactDetailFragment.java
+++ b/src/com/android/contacts/detail/ContactDetailFragment.java
@@ -1348,8 +1348,7 @@
                 return false;
             }
 
-            if (!ContactsUtils.shouldCollapse(context, mimetype, data, entry.mimetype,
-                    entry.data)) {
+            if (!ContactsUtils.shouldCollapse(mimetype, data, entry.mimetype, entry.data)) {
                 return false;
             }
 
diff --git a/src/com/android/contacts/interactions/PhoneNumberInteraction.java b/src/com/android/contacts/interactions/PhoneNumberInteraction.java
index 918dac0..a42456c 100644
--- a/src/com/android/contacts/interactions/PhoneNumberInteraction.java
+++ b/src/com/android/contacts/interactions/PhoneNumberInteraction.java
@@ -19,6 +19,7 @@
 import com.android.contacts.Collapser;
 import com.android.contacts.Collapser.Collapsible;
 import com.android.contacts.ContactSaveService;
+import com.android.contacts.ContactsUtils;
 import com.android.contacts.R;
 import com.android.contacts.model.AccountType;
 import com.android.contacts.model.AccountType.StringInflater;
@@ -123,18 +124,8 @@
         }
 
         public boolean shouldCollapseWith(PhoneItem phoneItem) {
-            try {
-                PhoneNumberUtil util = PhoneNumberUtil.getInstance();
-                PhoneNumber phoneNumber1 = util.parse(phoneNumber, "ZZ" /* Unknown */);
-                PhoneNumber phoneNumber2 = util.parse(phoneItem.phoneNumber, "ZZ" /* Unknown */);
-                MatchType matchType = util.isNumberMatch(phoneNumber1, phoneNumber2);
-                if (matchType == MatchType.SHORT_NSN_MATCH) {
-                    return true;
-                }
-            } catch (NumberParseException e) {
-                return TextUtils.equals(phoneNumber, phoneItem.phoneNumber);
-            }
-            return false;
+            return ContactsUtils.shouldCollapse(Phone.CONTENT_ITEM_TYPE, phoneNumber,
+                    Phone.CONTENT_ITEM_TYPE, phoneItem.phoneNumber);
         }
 
         @Override
diff --git a/src/com/android/contacts/quickcontact/DataAction.java b/src/com/android/contacts/quickcontact/DataAction.java
index 2066997..13e824e 100644
--- a/src/com/android/contacts/quickcontact/DataAction.java
+++ b/src/com/android/contacts/quickcontact/DataAction.java
@@ -294,8 +294,7 @@
             return false;
         }
         DataAction that = (DataAction)t;
-        if (!ContactsUtils.shouldCollapse(mContext, mMimeType, mBody, that.mMimeType,
-                that.mBody)) {
+        if (!ContactsUtils.shouldCollapse(mMimeType, mBody, that.mMimeType, that.mBody)) {
             return false;
         }
         if (!TextUtils.equals(mMimeType, that.mMimeType)
diff --git a/tests/src/com/android/contacts/ContactsUtilsTests.java b/tests/src/com/android/contacts/ContactsUtilsTests.java
index 97a2c8e..82d0cb0 100644
--- a/tests/src/com/android/contacts/ContactsUtilsTests.java
+++ b/tests/src/com/android/contacts/ContactsUtilsTests.java
@@ -160,9 +160,9 @@
     private void assertCollapses(String message, boolean expected, CharSequence mimetype1,
             CharSequence data1, CharSequence mimetype2, CharSequence data2) {
         assertEquals(message, expected,
-                ContactsUtils.shouldCollapse(mContext, mimetype1, data1, mimetype2, data2));
+                ContactsUtils.shouldCollapse(mimetype1, data1, mimetype2, data2));
         assertEquals(message, expected,
-                ContactsUtils.shouldCollapse(mContext, mimetype2, data2, mimetype1, data1));
+                ContactsUtils.shouldCollapse(mimetype2, data2, mimetype1, data1));
 
         if (data1 == data2 && data1 != null) {
             // make sure we also do a test where object equality is not given
@@ -173,10 +173,10 @@
 
             // we have two different instances, now make sure we get the same result as before
             assertEquals(message, expected,
-                    ContactsUtils.shouldCollapse(mContext, mimetype1, data1, mimetype2,
+                    ContactsUtils.shouldCollapse(mimetype1, data1, mimetype2,
                     data2_newref));
             assertEquals(message, expected,
-                    ContactsUtils.shouldCollapse(mContext, mimetype2, data2_newref, mimetype1,
+                    ContactsUtils.shouldCollapse(mimetype2, data2_newref, mimetype1,
                     data1));
         }
     }