diff options
-rw-r--r-- | src/com/android/server/telecom/settings/BlockedNumbersAdapter.java | 9 | ||||
-rw-r--r-- | src/com/android/server/telecom/settings/BlockedNumbersUtil.java | 24 |
2 files changed, 20 insertions, 13 deletions
diff --git a/src/com/android/server/telecom/settings/BlockedNumbersAdapter.java b/src/com/android/server/telecom/settings/BlockedNumbersAdapter.java index 705e0311..1278a4b4 100644 --- a/src/com/android/server/telecom/settings/BlockedNumbersAdapter.java +++ b/src/com/android/server/telecom/settings/BlockedNumbersAdapter.java @@ -41,12 +41,9 @@ public class BlockedNumbersAdapter extends SimpleCursorAdapter { super.bindView(view, context, cursor); final String rawNumber = cursor.getString(cursor.getColumnIndex( BlockedNumberContract.BlockedNumbers.COLUMN_ORIGINAL_NUMBER)); - String formattedNumber = PhoneNumberUtils.formatNumber(rawNumber, - BlockedNumbersUtil.getLocaleDefaultToUS()); - final String finalFormattedNumber = formattedNumber == null ? rawNumber : formattedNumber; - + final String formattedNumber = BlockedNumbersUtil.formatNumber(rawNumber); TextView numberView = (TextView) view.findViewById(R.id.blocked_number); - Spannable numberSpannable = new SpannableString(finalFormattedNumber); + Spannable numberSpannable = new SpannableString(formattedNumber); PhoneNumberUtils.addTtsSpan(numberSpannable, 0, numberSpannable.length()); numberView.setText(numberSpannable); @@ -54,7 +51,7 @@ public class BlockedNumbersAdapter extends SimpleCursorAdapter { deleteButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { - showDeleteBlockedNumberDialog(context, rawNumber, finalFormattedNumber); + showDeleteBlockedNumberDialog(context, rawNumber, formattedNumber); } }); } diff --git a/src/com/android/server/telecom/settings/BlockedNumbersUtil.java b/src/com/android/server/telecom/settings/BlockedNumbersUtil.java index 5d2e2382..b75c4b3a 100644 --- a/src/com/android/server/telecom/settings/BlockedNumbersUtil.java +++ b/src/com/android/server/telecom/settings/BlockedNumbersUtil.java @@ -18,11 +18,11 @@ package com.android.server.telecom.settings; import android.content.Context; import android.telephony.PhoneNumberUtils; +import android.text.BidiFormatter; import android.text.Spannable; import android.text.SpannableString; +import android.text.TextDirectionHeuristics; import android.widget.Toast; -import com.android.server.telecom.R; - import java.util.Locale; public final class BlockedNumbersUtil { @@ -40,18 +40,28 @@ public final class BlockedNumbersUtil { } /** + * Attempts to format the number, or returns the original number if it is not formattable. Also + * wraps the returned number as LTR. + */ + public static String formatNumber(String number){ + String formattedNumber = PhoneNumberUtils.formatNumber(number, getLocaleDefaultToUS()); + return BidiFormatter.getInstance().unicodeWrap( + formattedNumber == null ? number : formattedNumber, + TextDirectionHeuristics.LTR); + } + + /** * Formats the number in the string and shows a toast for {@link Toast#LENGTH_SHORT}. * * <p>Adds the number in a TsSpan so that it reads as a phone number when talk back is on. */ public static void showToastWithFormattedNumber(Context context, int stringId, String number) { - String formattedNumber = PhoneNumberUtils.formatNumber(number, getLocaleDefaultToUS()); - String finalFormattedNumber = formattedNumber == null ? number : formattedNumber; - String message = context.getString(stringId, finalFormattedNumber); - int startingPosition = message.indexOf(finalFormattedNumber); + String formattedNumber = formatNumber(number); + String message = context.getString(stringId, formattedNumber); + int startingPosition = message.indexOf(formattedNumber); Spannable messageSpannable = new SpannableString(message); PhoneNumberUtils.addTtsSpan(messageSpannable, startingPosition, - startingPosition + finalFormattedNumber.length()); + startingPosition + formattedNumber.length()); Toast.makeText( context, messageSpannable, |