summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZhizhiLiu <zhizhiliu@google.com>2023-05-06 02:22:32 +0000
committerAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>2023-05-06 02:22:32 +0000
commit6da0c6475820ca726776893528c5aaa6dbcc1b27 (patch)
tree8021c8f782bb337a627d2e40aa561184876c6c4f
parent68b0ec825136ba194d83a5803edd70f8c00d6c94 (diff)
parentb28d75cdfcda0de3372427b92e53a04773629073 (diff)
downloadTvSettings-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.java14
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();