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

Commit 62dbf274 authored by Aishwarya Mallampati's avatar Aishwarya Mallampati
Browse files

Change Linkify to use defaultCountry if simCountryIso is empty.

If device has no sim cards, then simCountryIso is empty. If
simCountryIso is empty, then we should fallback to default country.

Bug: 261576074
Test: atest com.android.frameworks.coretests
Change-Id: I2e83ffa1aaaff413d3dbe6dc49b81c2ee134b338
parent bcb53464
Loading
Loading
Loading
Loading
+10 −2
Original line number Original line Diff line number Diff line
@@ -31,6 +31,7 @@ import android.text.Spanned;
import android.text.method.LinkMovementMethod;
import android.text.method.LinkMovementMethod;
import android.text.method.MovementMethod;
import android.text.method.MovementMethod;
import android.text.style.URLSpan;
import android.text.style.URLSpan;
import android.text.TextUtils;
import android.util.Log;
import android.util.Log;
import android.util.Patterns;
import android.util.Patterns;
import android.webkit.WebView;
import android.webkit.WebView;
@@ -672,8 +673,15 @@ public class Linkify {
            @Nullable Context context) {
            @Nullable Context context) {
        PhoneNumberUtil phoneUtil = PhoneNumberUtil.getInstance();
        PhoneNumberUtil phoneUtil = PhoneNumberUtil.getInstance();
        final Context ctx = (context != null) ? context : ActivityThread.currentApplication();
        final Context ctx = (context != null) ? context : ActivityThread.currentApplication();
        final String regionCode = (ctx != null) ? ctx.getSystemService(TelephonyManager.class).
        String regionCode = Locale.getDefault().getCountry();
                getSimCountryIso().toUpperCase(Locale.US) : Locale.getDefault().getCountry();
        if (ctx != null) {
          String simCountryIso = ctx.getSystemService(TelephonyManager.class).getSimCountryIso();
          if (!TextUtils.isEmpty(simCountryIso)) {
            // Assign simCountryIso if it is available
            regionCode = simCountryIso.toUpperCase(Locale.US);
          }
        }

        Iterable<PhoneNumberMatch> matches = phoneUtil.findNumbers(s.toString(),
        Iterable<PhoneNumberMatch> matches = phoneUtil.findNumbers(s.toString(),
                regionCode, Leniency.POSSIBLE, Long.MAX_VALUE);
                regionCode, Leniency.POSSIBLE, Long.MAX_VALUE);
        for (PhoneNumberMatch match : matches) {
        for (PhoneNumberMatch match : matches) {