Remove API getDefaultSimCountryIso() as per API council feedback
Change Linkify to 1) use fallback context from activity thread when a valid context is not passed in the API. 2) use default locale if activity thread returns null context Bug: 144576376 Bug: 148514283 Test: atest com.android.frameworks.coretests Change-Id: I145821d12b49fcd4036dafce27857547f293124f
This commit is contained in:
@@ -11684,7 +11684,6 @@ package android.telephony {
|
||||
method @Deprecated public boolean getDataEnabled();
|
||||
method @Deprecated public boolean getDataEnabled(int);
|
||||
method @Nullable public static android.content.ComponentName getDefaultRespondViaMessageApplication(@NonNull android.content.Context, boolean);
|
||||
method @NonNull public static String getDefaultSimCountryIso();
|
||||
method @NonNull public java.util.List<android.telephony.data.ApnSetting> getDevicePolicyOverrideApns(@NonNull android.content.Context);
|
||||
method @Nullable @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public String getDeviceSoftwareVersion(int);
|
||||
method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public boolean getEmergencyCallbackMode();
|
||||
|
||||
@@ -19,6 +19,7 @@ package android.text.util;
|
||||
import android.annotation.IntDef;
|
||||
import android.annotation.NonNull;
|
||||
import android.annotation.Nullable;
|
||||
import android.app.ActivityThread;
|
||||
import android.compat.annotation.UnsupportedAppUsage;
|
||||
import android.content.Context;
|
||||
import android.telephony.PhoneNumberUtils;
|
||||
@@ -663,9 +664,11 @@ public class Linkify {
|
||||
private static void gatherTelLinks(ArrayList<LinkSpec> links, Spannable s,
|
||||
@Nullable Context context) {
|
||||
PhoneNumberUtil phoneUtil = PhoneNumberUtil.getInstance();
|
||||
final Context ctx = (context != null) ? context : ActivityThread.currentApplication();
|
||||
final String regionCode = (ctx != null) ? ctx.getSystemService(TelephonyManager.class).
|
||||
getSimCountryIso().toUpperCase(Locale.US) : Locale.getDefault().getCountry();
|
||||
Iterable<PhoneNumberMatch> matches = phoneUtil.findNumbers(s.toString(),
|
||||
TelephonyManager.getDefaultSimCountryIso().toUpperCase(Locale.US),
|
||||
Leniency.POSSIBLE, Long.MAX_VALUE);
|
||||
regionCode, Leniency.POSSIBLE, Long.MAX_VALUE);
|
||||
for (PhoneNumberMatch match : matches) {
|
||||
LinkSpec spec = new LinkSpec();
|
||||
spec.url = "tel:" + PhoneNumberUtils.normalizeNumber(match.rawString());
|
||||
|
||||
@@ -3763,29 +3763,6 @@ public class TelephonyManager {
|
||||
return getSimCountryIsoForPhone(getPhoneId());
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the ISO-3166 country code equivalent for the SIM provider's country code
|
||||
* of the default subscription
|
||||
* <p>
|
||||
* The ISO-3166 country code is provided in lowercase 2 character format.
|
||||
* @return the lowercase 2 character ISO-3166 country code, or empty string is not available.
|
||||
* <p>
|
||||
* Note: This API is introduced to unblock mainlining work as the following APIs in
|
||||
* Linkify.java invokes getSimCountryIso() without a context. TODO(Bug 144576376): remove
|
||||
* this API once the following APIs are redesigned to access telephonymanager with a context.
|
||||
*
|
||||
* {@link Linkify#addLinks(@NonNull Spannable text, @LinkifyMask int mask)}
|
||||
* {@link Linkify#addLinks(@NonNull Spannable text, @LinkifyMask int mask,
|
||||
@Nullable Function<String, URLSpan> urlSpanFactory)}
|
||||
*
|
||||
* @hide
|
||||
*/
|
||||
@SystemApi
|
||||
@NonNull
|
||||
public static String getDefaultSimCountryIso() {
|
||||
return getSimCountryIso(SubscriptionManager.getDefaultSubscriptionId());
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the ISO country code equivalent for the SIM provider's country code.
|
||||
*
|
||||
|
||||
Reference in New Issue
Block a user