[Settings] Unified the source of phone number

Route UI access to phone number into a unified util class within
Settings app.

Bug: 265940535
Test: local

Change-Id: Ic747b0044217101d9a6a1e2cd6e59bbdbcd88021
This commit is contained in:
Bonian Chen
2023-02-13 04:51:06 +00:00
parent 6f76d5dc91
commit c9ace54b03
4 changed files with 21 additions and 8 deletions

View File

@@ -31,6 +31,8 @@ import android.telephony.SubscriptionManager;
import android.telephony.TelephonyManager;
import android.telephony.UiccCardInfo;
import android.telephony.UiccSlotInfo;
import android.text.BidiFormatter;
import android.text.TextDirectionHeuristics;
import android.text.TextUtils;
import android.util.Log;
@@ -42,7 +44,6 @@ import com.android.settings.network.helper.SelectableSubscriptions;
import com.android.settings.network.helper.SubscriptionAnnotation;
import com.android.settings.network.telephony.DeleteEuiccSubscriptionDialogActivity;
import com.android.settings.network.telephony.ToggleSubscriptionDialogActivity;
import com.android.settingslib.DeviceInfoUtils;
import java.util.ArrayList;
import java.util.Collections;
@@ -292,7 +293,7 @@ public class SubscriptionUtil {
final Supplier<Stream<DisplayInfo>> uniqueInfos = () -> originalInfos.get().map(info -> {
if (duplicateOriginalNames.contains(info.originalName)) {
// This may return null, if the user cannot view the phone number itself.
final String phoneNumber = DeviceInfoUtils.getBidiFormattedPhoneNumber(context,
final String phoneNumber = getBidiFormattedPhoneNumber(context,
info.subscriptionInfo);
String lastFourDigits = "";
if (phoneNumber != null) {
@@ -563,6 +564,20 @@ public class SubscriptionUtil {
return PhoneNumberUtils.formatNumber(rawPhoneNumber, countryIso);
}
/**
* To get the formatting text for display in a potentially opposite-directionality context
* without garbling.
* @param subscriptionInfo {@link SubscriptionInfo} subscription information.
* @return Returns phone number with Bidi format.
*/
@Nullable
public static String getBidiFormattedPhoneNumber(Context context,
SubscriptionInfo subscriptionInfo) {
String phoneNumber = getFormattedPhoneNumber(context, subscriptionInfo);
return (phoneNumber == null) ? phoneNumber :
BidiFormatter.getInstance().unicodeWrap(phoneNumber, TextDirectionHeuristics.LTR);
}
/**
* Returns the subscription on a removable sim card. The device does not need to be on removable
* slot.