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
This commit is contained in:
Aishwarya Mallampati
2023-05-26 20:58:39 +00:00
parent bcb534642a
commit 62dbf27427

View File

@@ -31,6 +31,7 @@ import android.text.Spanned;
import android.text.method.LinkMovementMethod;
import android.text.method.MovementMethod;
import android.text.style.URLSpan;
import android.text.TextUtils;
import android.util.Log;
import android.util.Patterns;
import android.webkit.WebView;
@@ -672,8 +673,15 @@ public class Linkify {
@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();
String regionCode = 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(),
regionCode, Leniency.POSSIBLE, Long.MAX_VALUE);
for (PhoneNumberMatch match : matches) {