From f85644637b808d6a88886e462c1f8fd5f53a6f2f Mon Sep 17 00:00:00 2001 From: linyuh Date: Thu, 31 May 2018 20:59:05 -0700 Subject: Solve BiDi problem when phone number is concatenated with RTL-string Solves BiDi problem that might cause phone number to be displayed incorrectly in the dialer. Issue might occur when a phone number is concatenated with a custom number label containing an RTL-string. Solved by changing affected labels from TextView to BidiTextView. Removed function spanDisplayNumber in BottomRow which are now obsolete. Updates the DialerBidiFormatter to prevent whitespace to be misplaced within a BidiTextView. BUG=78464687 TEST=Manual Public-Origin-Change-Id: I789a6f76a5ca805c03a437813ce627eef7a0bf2e Signed-off-by: Linyu He Author: Torbjorn Eklund Bug: 78464687 Test: Manual PiperOrigin-RevId: 198823629 Change-Id: Id35c3ebf514609b4a1fe10a7ae5a297bde7c7456 --- java/com/android/incallui/contactgrid/BottomRow.java | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) (limited to 'java/com/android/incallui/contactgrid/BottomRow.java') diff --git a/java/com/android/incallui/contactgrid/BottomRow.java b/java/com/android/incallui/contactgrid/BottomRow.java index 7388c50a8..767d66668 100644 --- a/java/com/android/incallui/contactgrid/BottomRow.java +++ b/java/com/android/incallui/contactgrid/BottomRow.java @@ -18,9 +18,6 @@ package com.android.incallui.contactgrid; import android.content.Context; import android.support.annotation.Nullable; -import android.telephony.PhoneNumberUtils; -import android.text.BidiFormatter; -import android.text.TextDirectionHeuristics; import android.text.TextUtils; import com.android.incallui.call.state.DialerCallState; import com.android.incallui.incall.protocol.PrimaryCallState; @@ -118,21 +115,15 @@ public class BottomRow { return primaryInfo.location(); } if (!primaryInfo.nameIsNumber() && !TextUtils.isEmpty(primaryInfo.number())) { - CharSequence spannedNumber = spanDisplayNumber(primaryInfo.number()); if (primaryInfo.label() == null) { - return spannedNumber; + return primaryInfo.number(); } else { - return TextUtils.concat(primaryInfo.label(), " ", spannedNumber); + return TextUtils.concat(primaryInfo.label(), " ", primaryInfo.number()); } } return null; } - private static CharSequence spanDisplayNumber(String displayNumber) { - return PhoneNumberUtils.createTtsSpannable( - BidiFormatter.getInstance().unicodeWrap(displayNumber, TextDirectionHeuristics.LTR)); - } - private static boolean isIncoming(PrimaryCallState state) { return state.state() == DialerCallState.INCOMING || state.state() == DialerCallState.CALL_WAITING; -- cgit v1.2.3