Format phone number in QuickContactsActivity

Bug: 7230016

Change-Id: I0b28e131ee35d8948a574cab9b2a1c849edfc162
diff --git a/src/com/android/contacts/model/dataitem/DataItem.java b/src/com/android/contacts/model/dataitem/DataItem.java
index 25c44cb..391c657 100644
--- a/src/com/android/contacts/model/dataitem/DataItem.java
+++ b/src/com/android/contacts/model/dataitem/DataItem.java
@@ -206,6 +206,17 @@
         return actionBody == null ? null : actionBody.toString();
     }
 
+    /**
+     * This builds the data string(intended for display) depending on the type of data item. It
+     * returns the same value as {@link #buildDataString} by default, but certain data items can
+     * override it to provide their version of formatted data strings.
+     *
+     * @return Data string representing the data item, possibly formatted for display
+     */
+    public String buildDataStringForDisplay() {
+        return buildDataString();
+    }
+
     public String getKindString() {
         final DataKind kind = getDataKind();
         return (kind.titleRes == -1 || kind.titleRes == 0) ? ""
diff --git a/src/com/android/contacts/model/dataitem/PhoneDataItem.java b/src/com/android/contacts/model/dataitem/PhoneDataItem.java
index 61d62c1..3931563 100644
--- a/src/com/android/contacts/model/dataitem/PhoneDataItem.java
+++ b/src/com/android/contacts/model/dataitem/PhoneDataItem.java
@@ -70,4 +70,17 @@
         }
     }
 
+    /**
+     * Returns the formatted phone number (if already computed using {@link
+     * #computeFormattedPhoneNumber}). Otherwise this method returns the unformatted phone number.
+     */
+    @Override
+    public String buildDataStringForDisplay() {
+        final String formatted = getFormattedPhoneNumber();
+        if (formatted != null) {
+            return formatted;
+        } else {
+            return getNumber();
+        }
+    }
 }
diff --git a/src/com/android/contacts/quickcontact/DataAction.java b/src/com/android/contacts/quickcontact/DataAction.java
index c10c338..829475f 100644
--- a/src/com/android/contacts/quickcontact/DataAction.java
+++ b/src/com/android/contacts/quickcontact/DataAction.java
@@ -95,7 +95,7 @@
         }
 
         mIsPrimary = item.isSuperPrimary();
-        mBody = item.buildDataString();
+        mBody = item.buildDataStringForDisplay();
 
         mDataId = item.getId();
         mDataUri = ContentUris.withAppendedId(Data.CONTENT_URI, mDataId);
diff --git a/src/com/android/contacts/quickcontact/QuickContactActivity.java b/src/com/android/contacts/quickcontact/QuickContactActivity.java
index 25fb3f4..1ca2bcc 100644
--- a/src/com/android/contacts/quickcontact/QuickContactActivity.java
+++ b/src/com/android/contacts/quickcontact/QuickContactActivity.java
@@ -547,7 +547,10 @@
             if (mLookupUri == null) {
                 Log.wtf(TAG, "Lookup uri wasn't initialized. Loader was started too early");
             }
-            return new ContactLoader(getApplicationContext(), mLookupUri, false);
+            return new ContactLoader(getApplicationContext(), mLookupUri,
+                    false /*loadGroupMetaData*/, false /*loadStreamItems*/,
+                    false /*loadInvitableAccountTypes*/, false /*postViewNotification*/,
+                    true /*computeFormattedPhoneNumber*/);
         }
     };