am c62cc793: Display phone numbers as LTR

* commit 'c62cc7931593b4137f8a507689b653e1e15e1260':
  Display phone numbers as LTR
diff --git a/res/layout/expanding_entry_card_item.xml b/res/layout/expanding_entry_card_item.xml
index 567c02c..20e90eb 100644
--- a/res/layout/expanding_entry_card_item.xml
+++ b/res/layout/expanding_entry_card_item.xml
@@ -44,6 +44,7 @@
         android:layout_toEndOf="@+id/icon"
         android:layout_toStartOf="@+id/icon_alternate"
         android:textColor="@color/quickcontact_entry_header_text_color"
+        android:textAlignment="viewStart"
         android:layout_marginBottom="@dimen/expanding_entry_card_header_margin_bottom" />
 
     <TextView
@@ -53,6 +54,7 @@
         android:layout_below="@+id/header"
         android:layout_toEndOf="@+id/icon_sub_header"
         android:layout_toStartOf="@+id/icon_alternate"
+        android:textAlignment="viewStart"
         android:textColor="@color/quickcontact_entry_sub_header_text_color" />
 
     <ImageView
@@ -71,6 +73,7 @@
         android:layout_below="@+id/sub_header"
         android:layout_toEndOf="@+id/icon_text"
         android:layout_toStartOf="@+id/icon_alternate"
+        android:textAlignment="viewStart"
         android:textColor="@color/quickcontact_entry_sub_header_text_color" />
 
     <ImageView
diff --git a/res/layout/quickcontact_title.xml b/res/layout/quickcontact_title.xml
index 8bf48e3..3f4886d 100644
--- a/res/layout/quickcontact_title.xml
+++ b/res/layout/quickcontact_title.xml
@@ -28,6 +28,7 @@
     android:textColor="@color/actionbar_text_color"
     android:maxLines="@integer/quickcontact_title_lines"
     android:textSize="@dimen/quickcontact_maximum_title_size"
+    android:textAlignment="viewStart"
     android:ellipsize="end"
     android:importantForAccessibility="no"
     android:id="@+id/large_title"/>
\ No newline at end of file
diff --git a/src/com/android/contacts/detail/ContactDisplayUtils.java b/src/com/android/contacts/detail/ContactDisplayUtils.java
index 1180219..85e6026 100644
--- a/src/com/android/contacts/detail/ContactDisplayUtils.java
+++ b/src/com/android/contacts/detail/ContactDisplayUtils.java
@@ -34,7 +34,9 @@
 import android.graphics.drawable.Drawable;
 import android.net.Uri;
 import android.provider.ContactsContract.DisplayNameSources;
+import android.text.BidiFormatter;
 import android.text.Html;
+import android.text.TextDirectionHeuristics;
 import android.text.TextUtils;
 import android.util.Log;
 import android.view.MenuItem;
@@ -52,6 +54,7 @@
  */
 public class ContactDisplayUtils {
     private static final String TAG = "ContactDisplayUtils";
+    private static BidiFormatter sBidiFormatter = BidiFormatter.getInstance();
 
     /**
      * Returns the display name of the contact, using the current display order setting.
@@ -62,6 +65,10 @@
         final CharSequence displayName = contactData.getDisplayName();
         if (prefs.getDisplayOrder() == ContactsPreferences.DISPLAY_ORDER_PRIMARY) {
             if (!TextUtils.isEmpty(displayName)) {
+                if (contactData.getDisplayNameSource() == DisplayNameSources.PHONE) {
+                    return sBidiFormatter.unicodeWrap(
+                            displayName.toString(), TextDirectionHeuristics.LTR);
+                }
                 return displayName;
             }
         } else {
diff --git a/src/com/android/contacts/interactions/CallLogInteraction.java b/src/com/android/contacts/interactions/CallLogInteraction.java
index 702c23b..f751ae7 100644
--- a/src/com/android/contacts/interactions/CallLogInteraction.java
+++ b/src/com/android/contacts/interactions/CallLogInteraction.java
@@ -27,7 +27,8 @@
 import android.net.Uri;
 import android.provider.CallLog.Calls;
 import android.provider.ContactsContract.CommonDataKinds.Phone;
-import android.util.Log;
+import android.text.BidiFormatter;
+import android.text.TextDirectionHeuristics;
 
 /**
  * Represents a call log event interaction, wrapping the columns in
@@ -46,6 +47,7 @@
     private static final String URI_TARGET_PREFIX = "tel:";
     private static final int CALL_LOG_ICON_RES = R.drawable.ic_phone_24dp;
     private static final int CALL_ARROW_ICON_RES = R.drawable.ic_call_arrow;
+    private static BidiFormatter sBidiFormatter = BidiFormatter.getInstance();
 
     private ContentValues mValues;
 
@@ -159,7 +161,8 @@
     }
 
     public String getNumber() {
-        return mValues.getAsString(Calls.NUMBER);
+        return sBidiFormatter.unicodeWrap(
+                mValues.getAsString(Calls.NUMBER), TextDirectionHeuristics.LTR);
     }
 
     public Integer getNumberPresentation() {
diff --git a/src/com/android/contacts/interactions/SmsInteraction.java b/src/com/android/contacts/interactions/SmsInteraction.java
index 34adfc1..8b26023 100644
--- a/src/com/android/contacts/interactions/SmsInteraction.java
+++ b/src/com/android/contacts/interactions/SmsInteraction.java
@@ -23,6 +23,8 @@
 import android.graphics.drawable.Drawable;
 import android.net.Uri;
 import android.provider.Telephony.Sms;
+import android.text.BidiFormatter;
+import android.text.TextDirectionHeuristics;
 
 /**
  * Represents an sms interaction, wrapping the columns in
@@ -32,6 +34,7 @@
 
     private static final String URI_TARGET_PREFIX = "smsto:";
     private static final int SMS_ICON_RES = R.drawable.ic_message_24dp;
+    private static BidiFormatter sBidiFormatter = BidiFormatter.getInstance();
 
     private ContentValues mValues;
 
@@ -89,7 +92,8 @@
     }
 
     public String getAddress() {
-        return mValues.getAsString(Sms.ADDRESS);
+        return sBidiFormatter.unicodeWrap(
+                mValues.getAsString(Sms.ADDRESS), TextDirectionHeuristics.LTR);
     }
 
     public String getBody() {
diff --git a/src/com/android/contacts/quickcontact/QuickContactActivity.java b/src/com/android/contacts/quickcontact/QuickContactActivity.java
index eda9a91..e5574d9 100644
--- a/src/com/android/contacts/quickcontact/QuickContactActivity.java
+++ b/src/com/android/contacts/quickcontact/QuickContactActivity.java
@@ -72,6 +72,8 @@
 import android.support.v7.graphics.Palette;
 import android.telecom.PhoneAccount;
 import android.telecom.TelecomManager;
+import android.text.BidiFormatter;
+import android.text.TextDirectionHeuristics;
 import android.text.TextUtils;
 import android.util.Log;
 import android.view.ContextMenu;
@@ -268,6 +270,8 @@
             Identity.CONTENT_ITEM_TYPE,
             Note.CONTENT_ITEM_TYPE);
 
+    private static final BidiFormatter sBidiFormatter = BidiFormatter.getInstance();
+
     /** Id for the background contact loader */
     private static final int LOADER_CONTACT_ID = 0;
 
@@ -1372,7 +1376,8 @@
             final PhoneDataItem phone = (PhoneDataItem) dataItem;
             if (!TextUtils.isEmpty(phone.getNumber())) {
                 primaryContentDescription.append(res.getString(R.string.call_other)).append(" ");
-                header = phone.buildDataString(context, kind);
+                header = sBidiFormatter.unicodeWrap(phone.buildDataString(context, kind),
+                        TextDirectionHeuristics.LTR);
                 entryContextMenuInfo = new EntryContextMenuInfo(header,
                         res.getString(R.string.phoneLabelsGroup), dataItem.getMimeType(),
                         dataItem.getId(), dataItem.isSuperPrimary());