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

Commit cbfb1128 authored by Yorke Lee's avatar Yorke Lee
Browse files

Force LTR for phone numbers in contact details and editor

Bug 8676101

Change-Id: Ia5117c2e7dbffb5ca17e4147a20bdade500a8c92
parent 6136afe7
Loading
Loading
Loading
Loading
+12 −0
Original line number Diff line number Diff line
@@ -132,6 +132,8 @@ public class ContactDetailFragment extends Fragment implements FragmentKeyListen

    private static final String TAG = "ContactDetailFragment";

    private static final int TEXT_DIRECTION_UNDEFINED = -1;

    private interface ContextMenuIds {
        static final int COPY_TEXT = 0;
        static final int CLEAR_DEFAULT = 1;
@@ -616,6 +618,10 @@ public class ContactDetailFragment extends Fragment implements FragmentKeyListen
                        // add to end of list
                        mPhoneEntries.add(entry);
                    }

                    // Configure the text direction. Phone numbers should be displayed LTR
                    // regardless of what locale the device is in.
                    entry.textDirection = View.TEXT_DIRECTION_LTR;
                } else if (dataItem instanceof EmailDataItem && hasData) {
                    // Build email entries
                    entry.intent = new Intent(Intent.ACTION_SENDTO,
@@ -1217,6 +1223,7 @@ public class ContactDetailFragment extends Fragment implements FragmentKeyListen
        public String data;
        public Uri uri;
        public int maxLines = 1;
        public int textDirection = TEXT_DIRECTION_UNDEFINED;
        public String mimetype;

        public Context context = null;
@@ -1766,6 +1773,11 @@ public class ContactDetailFragment extends Fragment implements FragmentKeyListen
                    mViewEntryDimensions.getPaddingTop(),
                    secondaryActionViewContainer.getPaddingRight(),
                    mViewEntryDimensions.getPaddingBottom());

            // Set the text direction
            if (entry.textDirection != TEXT_DIRECTION_UNDEFINED) {
                views.data.setTextDirection(entry.textDirection);
            }
        }

        private void setMaxLines(TextView textView, int maxLines) {
+12 −4
Original line number Diff line number Diff line
@@ -212,8 +212,8 @@ public class RawContactReadOnlyEditorView extends BaseRawContactEditorView
                } else {
                    phoneType = null;
                }
                bindData(mContext.getText(R.string.phoneLabelsGroup),
                        phoneNumber, phoneType, i == 0);
                bindData(mContext.getText(R.string.phoneLabelsGroup), phoneNumber, phoneType,
                        i == 0, true);
            }
        }

@@ -243,8 +243,13 @@ public class RawContactReadOnlyEditorView extends BaseRawContactEditorView
        }
    }

    private void bindData(
            CharSequence titleText, CharSequence data, CharSequence type, boolean isFirstEntry) {
    private void bindData(CharSequence titleText, CharSequence data, CharSequence type,
            boolean isFirstEntry) {
        bindData(titleText, data, type, isFirstEntry, false);
    }

    private void bindData(CharSequence titleText, CharSequence data, CharSequence type,
            boolean isFirstEntry, boolean forceLTR) {
        final View field = mInflater.inflate(R.layout.item_read_only_field, mGeneral, false);
        final View divider = field.findViewById(R.id.divider);
        if (isFirstEntry) {
@@ -258,6 +263,9 @@ public class RawContactReadOnlyEditorView extends BaseRawContactEditorView
        }
        final TextView dataView = (TextView) field.findViewById(R.id.data);
        dataView.setText(data);
        if (forceLTR) {
            dataView.setTextDirection(View.TEXT_DIRECTION_LTR);
        }
        final TextView typeView = (TextView) field.findViewById(R.id.type);
        if (!TextUtils.isEmpty(type)) {
            typeView.setText(type);
+1 −0
Original line number Diff line number Diff line
@@ -215,6 +215,7 @@ public class TextFieldsEditorView extends LabeledEditorView {
            fieldView.setInputType(inputType);
            if (inputType == InputType.TYPE_CLASS_PHONE) {
                PhoneNumberFormatter.setPhoneNumberFormattingTextWatcher(mContext, fieldView);
                fieldView.setTextDirection(View.TEXT_DIRECTION_LTR);
            }

            // Show the "next" button in IME to navigate between text fields