diff options
author | ZhizhiLiu <zhizhiliu@google.com> | 2023-05-06 02:22:32 +0000 |
---|---|---|
committer | Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> | 2023-05-06 02:22:32 +0000 |
commit | 6da0c6475820ca726776893528c5aaa6dbcc1b27 (patch) | |
tree | 8021c8f782bb337a627d2e40aa561184876c6c4f | |
parent | 68b0ec825136ba194d83a5803edd70f8c00d6c94 (diff) | |
parent | b28d75cdfcda0de3372427b92e53a04773629073 (diff) | |
download | TvSettings-6da0c6475820ca726776893528c5aaa6dbcc1b27.tar.gz |
Fix the bug when SKU is set to JP, Japanese option does not show up. am: b28d75cdfc
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/TvSettings/+/23053768
Change-Id: Ic242c7a9b7e7670569b243e9428d3047899e76c6
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
-rw-r--r-- | Settings/src/com/android/tv/settings/system/locale/LanguagePickerFragment.java | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/Settings/src/com/android/tv/settings/system/locale/LanguagePickerFragment.java b/Settings/src/com/android/tv/settings/system/locale/LanguagePickerFragment.java index aa679868f..c18ff8928 100644 --- a/Settings/src/com/android/tv/settings/system/locale/LanguagePickerFragment.java +++ b/Settings/src/com/android/tv/settings/system/locale/LanguagePickerFragment.java @@ -43,6 +43,7 @@ import java.util.ArrayList; import java.util.HashSet; import java.util.Locale; import java.util.Set; +import java.util.stream.Collectors; /** Language picker settings screen for locale selection. */ @Keep @@ -75,9 +76,13 @@ public class LanguagePickerFragment extends SettingsPreferenceFragment { final LocaleHelper.LocaleInfoComparator comp = new LocaleHelper.LocaleInfoComparator(sortingLocale, false); mLocaleInfos.sort(comp); + final Set<LocaleStore.LocaleInfo> notSuggestedLocales = + mLocaleInfos.stream().filter( + localeInfo -> !localeInfo.isSuggested()).collect(Collectors.toSet()); for (LocaleStore.LocaleInfo localeInfo : mLocaleInfos) { mLocaleDataViewModel.addLocaleInfoList(localeInfo, getActivity(), langTagsToIgnore); - if (localeInfo.isSuggested()) { + if (localeInfo.isSuggested() + && containsSuggestedLocale(notSuggestedLocales, localeInfo)) { continue; } ArrayList<LocaleStore.LocaleInfo> localeInfoWithCountryList = mLocaleDataViewModel @@ -107,6 +112,13 @@ public class LanguagePickerFragment extends SettingsPreferenceFragment { setPreferenceScreen(screen); } + private static boolean containsSuggestedLocale(Set<LocaleStore.LocaleInfo> localeInfos, + LocaleStore.LocaleInfo suggestedLocaleInfo) { + return localeInfos.stream().anyMatch(localeInfo -> localeInfo.getLocale().getLanguage() + .equals(suggestedLocaleInfo.getLocale().getLanguage()) + && localeInfo.getLocale().getScript().equals( + suggestedLocaleInfo.getLocale().getScript())); + } @Override public void onResume() { super.onResume(); |