Fix result does not get correct locale tag.
Bug: b/255559017
Test: atest Pass
Test: FDR DUT and insert VZ sim, then complete SUW flow. No crash of SUW.
Change-Id: I1f999162c66b246b484d3ef5c358f48400eb70e9
diff --git a/src/com/android/phone/PhoneInterfaceManager.java b/src/com/android/phone/PhoneInterfaceManager.java
index aa6f7f9..71771cf 100755
--- a/src/com/android/phone/PhoneInterfaceManager.java
+++ b/src/com/android/phone/PhoneInterfaceManager.java
@@ -7851,7 +7851,7 @@
if (!localeFromDefaultSim.getCountry().isEmpty()) {
if (DBG) log("Using locale from subId: " + subId + " locale: "
+ localeFromDefaultSim);
- return matchLocaleFromSupportedLocaleList(localeFromDefaultSim);
+ return matchLocaleFromSupportedLocaleList(phone, localeFromDefaultSim);
} else {
simLanguage = localeFromDefaultSim.getLanguage();
}
@@ -7864,7 +7864,7 @@
final Locale mccLocale = LocaleUtils.getLocaleFromMcc(mApp, mcc, simLanguage);
if (mccLocale != null) {
if (DBG) log("No locale from SIM, using mcc locale:" + mccLocale);
- return matchLocaleFromSupportedLocaleList(mccLocale);
+ return matchLocaleFromSupportedLocaleList(phone, mccLocale);
}
if (DBG) log("No locale found - returning null");
@@ -7875,13 +7875,12 @@
}
@VisibleForTesting
- String matchLocaleFromSupportedLocaleList(@NonNull Locale inputLocale) {
+ String matchLocaleFromSupportedLocaleList(Phone phone, @NonNull Locale inputLocale) {
String[] supportedLocale = com.android.internal.app.LocalePicker.getSupportedLocales(
- getDefaultPhone().getContext());
+ phone.getContext());
for (String localeTag : supportedLocale) {
- if (LocaleList.matchesLanguageAndScript(
- inputLocale, Locale.forLanguageTag(localeTag))
- && inputLocale.getCountry().equals(
+ if (LocaleList.matchesLanguageAndScript(inputLocale, Locale.forLanguageTag(localeTag))
+ && TextUtils.equals(inputLocale.getCountry(),
Locale.forLanguageTag(localeTag).getCountry())) {
return localeTag;
}