Merge "Fix bugs on RTL alignments." into ub-contactsdialer-a-dev
diff --git a/res/layout/compact_account_info.xml b/res/layout/compact_account_info.xml
index f81d963..95fced2 100644
--- a/res/layout/compact_account_info.xml
+++ b/res/layout/compact_account_info.xml
@@ -61,6 +61,7 @@
                 android:singleLine="true"
                 android:textColor="@color/secondary_text_color"
                 android:ellipsize="end"
+                android:textAlignment="viewStart"
                 />
 
     </LinearLayout>
diff --git a/src/com/android/contacts/editor/TextFieldsEditorView.java b/src/com/android/contacts/editor/TextFieldsEditorView.java
index cdb4485..8a6141d 100644
--- a/src/com/android/contacts/editor/TextFieldsEditorView.java
+++ b/src/com/android/contacts/editor/TextFieldsEditorView.java
@@ -234,6 +234,7 @@
                 PhoneNumberFormatter.setPhoneNumberFormattingTextWatcher(getContext(), fieldView);
                 fieldView.setTextDirection(View.TEXT_DIRECTION_LTR);
             }
+            fieldView.setTextAlignment(View.TEXT_ALIGNMENT_VIEW_START);
 
             // Set either a minimum line requirement or a minimum height (because {@link TextView}
             // only takes one or the other at a single time).
diff --git a/src/com/android/contacts/quickcontact/QuickContactActivity.java b/src/com/android/contacts/quickcontact/QuickContactActivity.java
index 2d513d8..143cb47 100644
--- a/src/com/android/contacts/quickcontact/QuickContactActivity.java
+++ b/src/com/android/contacts/quickcontact/QuickContactActivity.java
@@ -1200,15 +1200,16 @@
     /** Assign this string to the view if it is not empty. */
     private void setHeaderNameText(int resId) {
         if (mScroller != null) {
-            mScroller.setTitle(getText(resId) == null ? null : getText(resId).toString());
+            mScroller.setTitle(getText(resId) == null ? null : getText(resId).toString(),
+                    /* isPhoneNumber= */ false);
         }
     }
 
     /** Assign this string to the view if it is not empty. */
-    private void setHeaderNameText(String value) {
+    private void setHeaderNameText(String value, boolean isPhoneNumber) {
         if (!TextUtils.isEmpty(value)) {
             if (mScroller != null) {
-                mScroller.setTitle(value);
+                mScroller.setTitle(value, isPhoneNumber);
             }
         }
     }
@@ -1242,7 +1243,8 @@
         mPhotoSetter.setupContactPhoto(data, mPhotoView);
         extractAndApplyTintFromPhotoViewAsynchronously();
         final String displayName = ContactDisplayUtils.getDisplayName(this, data).toString();
-        setHeaderNameText(displayName);
+        setHeaderNameText(
+                displayName, mContactData.getDisplayNameSource() == DisplayNameSources.PHONE);
         final String phoneticName = ContactDisplayUtils.getPhoneticName(this, data);
         if (mScroller != null) {
             if (mContactData.getDisplayNameSource() != DisplayNameSources.STRUCTURED_PHONETIC_NAME
diff --git a/src/com/android/contacts/widget/MultiShrinkScroller.java b/src/com/android/contacts/widget/MultiShrinkScroller.java
index 95f277c..d1cb9f8 100644
--- a/src/com/android/contacts/widget/MultiShrinkScroller.java
+++ b/src/com/android/contacts/widget/MultiShrinkScroller.java
@@ -395,8 +395,12 @@
         mTitleGradientView.setLayoutParams(titleGradientLayoutParams);
     }
 
-    public void setTitle(String title) {
+    public void setTitle(String title, boolean isPhoneNumber) {
         mLargeTextView.setText(title);
+        // We have a phone number as "mLargeTextView" so make it always LTR.
+        if (isPhoneNumber) {
+            mLargeTextView.setTextDirection(View.TEXT_DIRECTION_LTR);
+        }
         mPhotoTouchInterceptOverlay.setContentDescription(title);
     }