[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:
@@ -30,7 +30,6 @@ import androidx.preference.PreferenceScreen;
|
||||
import com.android.settings.R;
|
||||
import com.android.settings.core.BasePreferenceController;
|
||||
import com.android.settings.network.SubscriptionUtil;
|
||||
import com.android.settingslib.DeviceInfoUtils;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
@@ -157,7 +156,7 @@ public class PhoneNumberPreferenceController extends BasePreferenceController {
|
||||
|
||||
@VisibleForTesting
|
||||
protected CharSequence getFormattedPhoneNumber(SubscriptionInfo subscriptionInfo) {
|
||||
final String phoneNumber = DeviceInfoUtils.getBidiFormattedPhoneNumber(mContext,
|
||||
final String phoneNumber = SubscriptionUtil.getBidiFormattedPhoneNumber(mContext,
|
||||
subscriptionInfo);
|
||||
return TextUtils.isEmpty(phoneNumber) ? mContext.getString(R.string.device_info_default)
|
||||
: phoneNumber;
|
||||
|
@@ -59,7 +59,7 @@ import androidx.lifecycle.LifecycleObserver;
|
||||
import androidx.lifecycle.OnLifecycleEvent;
|
||||
|
||||
import com.android.settings.R;
|
||||
import com.android.settingslib.DeviceInfoUtils;
|
||||
import com.android.settings.network.SubscriptionUtil;
|
||||
import com.android.settingslib.Utils;
|
||||
import com.android.settingslib.core.lifecycle.Lifecycle;
|
||||
|
||||
@@ -329,7 +329,7 @@ public class SimStatusDialogController implements LifecycleObserver {
|
||||
public void updatePhoneNumber() {
|
||||
// If formattedNumber is null or empty, it'll display as "Unknown".
|
||||
mDialog.setText(PHONE_NUMBER_VALUE_ID,
|
||||
DeviceInfoUtils.getBidiFormattedPhoneNumber(mContext, mSubscriptionInfo));
|
||||
SubscriptionUtil.getBidiFormattedPhoneNumber(mContext, mSubscriptionInfo));
|
||||
}
|
||||
|
||||
private void updateDataState(int state) {
|
||||
|
@@ -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.
|
||||
|
@@ -47,7 +47,6 @@ import androidx.appcompat.app.AlertDialog;
|
||||
import com.android.settings.R;
|
||||
import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
|
||||
import com.android.settings.network.SubscriptionUtil;
|
||||
import com.android.settingslib.DeviceInfoUtils;
|
||||
|
||||
import com.google.common.collect.ImmutableMap;
|
||||
|
||||
@@ -184,7 +183,7 @@ public class RenameMobileNetworkDialogFragment extends InstrumentedDialogFragmen
|
||||
phoneTitle.setVisibility(info.isOpportunistic() ? View.GONE : View.VISIBLE);
|
||||
|
||||
final TextView phoneNumber = view.findViewById(R.id.number_value);
|
||||
final String pn = DeviceInfoUtils.getBidiFormattedPhoneNumber(getContext(), info);
|
||||
final String pn = SubscriptionUtil.getBidiFormattedPhoneNumber(getContext(), info);
|
||||
if (!TextUtils.isEmpty(pn)) {
|
||||
phoneNumber.setText(pn);
|
||||
}
|
||||
|
Reference in New Issue
Block a user