From 4d8f51531f7f01e2d08898906a393cb606b86353 Mon Sep 17 00:00:00 2001 From: Wu Qiang Date: Fri, 7 Jul 2017 18:18:16 +0800 Subject: [PATCH] Fix plus position in about phone Settings has phone number in about phone, "+" is shown with incorrect position in Bidi layout. Then it needs to use BidiFormatter Fixes: 70700094 Test: manual Change-Id: I1d63f773926136c38ce1ac811869476dc6a89eac --- .../settings/deviceinfo/PhoneNumberPreferenceController.java | 4 +++- .../deviceinfo/simstatus/SimStatusDialogController.java | 5 ++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/com/android/settings/deviceinfo/PhoneNumberPreferenceController.java b/src/com/android/settings/deviceinfo/PhoneNumberPreferenceController.java index 802d774d7b6..93f75bfb327 100644 --- a/src/com/android/settings/deviceinfo/PhoneNumberPreferenceController.java +++ b/src/com/android/settings/deviceinfo/PhoneNumberPreferenceController.java @@ -23,6 +23,8 @@ import android.support.v7.preference.PreferenceScreen; import android.telephony.SubscriptionInfo; import android.telephony.SubscriptionManager; import android.telephony.TelephonyManager; +import android.text.BidiFormatter; +import android.text.TextDirectionHeuristics; import android.text.TextUtils; import com.android.settings.R; @@ -120,7 +122,7 @@ public class PhoneNumberPreferenceController extends AbstractPreferenceControlle final String phoneNumber = DeviceInfoUtils.getFormattedPhoneNumber(mContext, subscriptionInfo); return TextUtils.isEmpty(phoneNumber) ? mContext.getString(R.string.device_info_default) - : phoneNumber; + : BidiFormatter.getInstance().unicodeWrap(phoneNumber, TextDirectionHeuristics.LTR); } @VisibleForTesting diff --git a/src/com/android/settings/deviceinfo/simstatus/SimStatusDialogController.java b/src/com/android/settings/deviceinfo/simstatus/SimStatusDialogController.java index 35b8bd1576a..91440f7d871 100644 --- a/src/com/android/settings/deviceinfo/simstatus/SimStatusDialogController.java +++ b/src/com/android/settings/deviceinfo/simstatus/SimStatusDialogController.java @@ -39,6 +39,8 @@ import android.telephony.SignalStrength; import android.telephony.SubscriptionInfo; import android.telephony.SubscriptionManager; import android.telephony.TelephonyManager; +import android.text.BidiFormatter; +import android.text.TextDirectionHeuristics; import android.text.TextUtils; import android.util.Log; @@ -195,7 +197,8 @@ public class SimStatusDialogController implements LifecycleObserver, OnResume, O private void updatePhoneNumber() { // If formattedNumber is null or empty, it'll display as "Unknown". - mDialog.setText(PHONE_NUMBER_VALUE_ID, getPhoneNumber()); + mDialog.setText(PHONE_NUMBER_VALUE_ID, BidiFormatter.getInstance().unicodeWrap( + getPhoneNumber(), TextDirectionHeuristics.LTR)); } private void updateDataState(int state) {