Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit dc8cb290 authored by Jayachandran C's avatar Jayachandran C
Browse files

Add static version of getSimCountryIso() called getDefaultSimCountryIso()

This new system API will use the default subscription to get the ISO

Bug: 140768340
Test: Sanity
Change-Id: I362acaed0085a535104a1f0af606fd0891608c8d
parent 0fd29b3a
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -8566,6 +8566,7 @@ 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 @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();
    method @Nullable @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public String getIsimDomain();
+1 −4
Original line number Diff line number Diff line
@@ -663,11 +663,8 @@ public class Linkify {
    private static void gatherTelLinks(ArrayList<LinkSpec> links, Spannable s,
            @Nullable Context context) {
        PhoneNumberUtil phoneUtil = PhoneNumberUtil.getInstance();
        final TelephonyManager tm = (context == null)
                ? TelephonyManager.getDefault()
                : TelephonyManager.from(context);
        Iterable<PhoneNumberMatch> matches = phoneUtil.findNumbers(s.toString(),
                tm.getSimCountryIso().toUpperCase(Locale.US),
                TelephonyManager.getDefaultSimCountryIso().toUpperCase(Locale.US),
                Leniency.POSSIBLE, Long.MAX_VALUE);
        for (PhoneNumberMatch match : matches) {
            LinkSpec spec = new LinkSpec();
+25 −2
Original line number Diff line number Diff line
@@ -3565,6 +3565,29 @@ 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.
     *
@@ -3572,7 +3595,7 @@ public class TelephonyManager {
     * @hide
     */
    @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P)
    public String getSimCountryIso(int subId) {
    public static String getSimCountryIso(int subId) {
        int phoneId = SubscriptionManager.getPhoneId(subId);
        return getSimCountryIsoForPhone(phoneId);
    }
@@ -3583,7 +3606,7 @@ public class TelephonyManager {
     * @hide
     */
    @UnsupportedAppUsage
    public String getSimCountryIsoForPhone(int phoneId) {
    public static String getSimCountryIsoForPhone(int phoneId) {
        return getTelephonyProperty(phoneId, TelephonyProperties.icc_operator_iso_country(), "");
    }