diff --git a/app/src/common/shared/org/mozilla/vrbrowser/browser/SettingsStore.java b/app/src/common/shared/org/mozilla/vrbrowser/browser/SettingsStore.java index 28af9e130..25999f0e4 100644 --- a/app/src/common/shared/org/mozilla/vrbrowser/browser/SettingsStore.java +++ b/app/src/common/shared/org/mozilla/vrbrowser/browser/SettingsStore.java @@ -426,7 +426,7 @@ public ArrayList getContentLocales() { String json = mPrefs.getString( mContext.getString(R.string.settings_key_content_languages), - new JSONArray().toString()); + null); try { JSONArray jsonArray = new JSONArray(json); @@ -434,11 +434,11 @@ public ArrayList getContentLocales() { result.add(jsonArray.getString(i)); } - } catch (JSONException e) { - e.printStackTrace(); - } + return result; - return result; + } catch (Exception e) { + return null; + } } public void setContentLocales(List languages) { diff --git a/app/src/common/shared/org/mozilla/vrbrowser/ui/adapters/Language.java b/app/src/common/shared/org/mozilla/vrbrowser/ui/adapters/Language.java index bc0360c52..3f606633d 100644 --- a/app/src/common/shared/org/mozilla/vrbrowser/ui/adapters/Language.java +++ b/app/src/common/shared/org/mozilla/vrbrowser/ui/adapters/Language.java @@ -6,13 +6,11 @@ public Language(String id, String name) { this.id = id; this.name = name; this.isPreferred = false; - this.isDefault = false; } private String name; private String id; private boolean isPreferred; - private boolean isDefault; public String getId() { return this.id; @@ -30,14 +28,6 @@ public boolean isPreferred() { return isPreferred; } - public void setDefault(boolean isDefault) { - this.isDefault = isDefault; - } - - public boolean isDefault() { - return isDefault; - } - @Override public int hashCode() { return id.hashCode(); diff --git a/app/src/common/shared/org/mozilla/vrbrowser/ui/adapters/LanguagesAdapter.java b/app/src/common/shared/org/mozilla/vrbrowser/ui/adapters/LanguagesAdapter.java index 8e5a3ee27..807dfc5b9 100644 --- a/app/src/common/shared/org/mozilla/vrbrowser/ui/adapters/LanguagesAdapter.java +++ b/app/src/common/shared/org/mozilla/vrbrowser/ui/adapters/LanguagesAdapter.java @@ -153,13 +153,13 @@ public void onBindViewHolder(@NonNull LanguageViewHolder holder, int position) { } else if (holder.binding.add.getVisibility() == View.VISIBLE && ViewUtils.isInsideView(holder.binding.add, (int)event.getRawX(), (int)event.getRawY())) { - if (!language.isDefault() && !language.isPreferred()) { + if (!language.isPreferred()) { mLanguageItemCallback.onAdd(holder.binding.add, language); } } else if (holder.binding.delete.getVisibility() == View.VISIBLE && ViewUtils.isInsideView(holder.binding.delete, (int)event.getRawX(), (int)event.getRawY())) { - if (!language.isDefault() && language.isPreferred()) { + if (language.isPreferred()) { mLanguageItemCallback.onRemove(holder.binding.delete, language); } } diff --git a/app/src/common/shared/org/mozilla/vrbrowser/ui/widgets/settings/LanguageOptionsView.java b/app/src/common/shared/org/mozilla/vrbrowser/ui/widgets/settings/LanguageOptionsView.java index f7a0827fc..6a628ca44 100644 --- a/app/src/common/shared/org/mozilla/vrbrowser/ui/widgets/settings/LanguageOptionsView.java +++ b/app/src/common/shared/org/mozilla/vrbrowser/ui/widgets/settings/LanguageOptionsView.java @@ -92,8 +92,11 @@ private void setVoiceLanguage() { private void setContentLanguage() { List preferredLanguages = LocaleUtils.getPreferredLanguages(getContext()); - String text = getContext().getResources().getString(R.string.language_options_content_language, preferredLanguages.get(0).getName()); - mBinding.contentLanguageButton.setDescription(ViewUtils.getSpannedText(text)); + String text = ""; + if (preferredLanguages.size() > 0) { + text = preferredLanguages.get(0).getName(); + } + mBinding.contentLanguageButton.setDescription(ViewUtils.getSpannedText(getContext().getResources().getString(R.string.language_options_content_language, text))); } private void setDisplayLanguage() { diff --git a/app/src/common/shared/org/mozilla/vrbrowser/utils/LocaleUtils.java b/app/src/common/shared/org/mozilla/vrbrowser/utils/LocaleUtils.java index 8ed0ae45f..fca8a5bb9 100644 --- a/app/src/common/shared/org/mozilla/vrbrowser/utils/LocaleUtils.java +++ b/app/src/common/shared/org/mozilla/vrbrowser/utils/LocaleUtils.java @@ -4,7 +4,6 @@ import android.content.res.Configuration; import android.content.res.Resources; import android.os.Build; -import android.util.Log; import androidx.annotation.NonNull; @@ -60,9 +59,6 @@ private static HashMap getAllLanguages() { String languageId = temp.toLanguageTag(); String displayName = temp.getDisplayName().substring(0, 1).toUpperCase() + temp.getDisplayName().substring(1); Language locale = new Language(languageId, displayName + " [" + languageId + "]"); - if (languageId.equals(currentLocale)) { - locale.setDefault(true); - } mLanguagesCache.put(languageId, locale); } @@ -93,14 +89,17 @@ public static List getPreferredLanguages(@NonNull Context aContext) { HashMap languages = getAllLanguages(); List savedLanguages = SettingsStore.getInstance(aContext).getContentLocales(); List preferredLanguages = new ArrayList<>(); - for (String language : savedLanguages) { - Language lang = languages.get(language); - lang.setPreferred(true); - preferredLanguages.add(lang); - } + if (savedLanguages != null) { + for (String language : savedLanguages) { + Language lang = languages.get(language); + lang.setPreferred(true); + preferredLanguages.add(lang); + } - if (!savedLanguages.stream().anyMatch(str -> str.trim().equals(getCurrentLocale()))) { - preferredLanguages.add(getCurrentLocaleLanguage()); + } else { + Language currentLanguage = getCurrentLocaleLanguage(); + currentLanguage.setPreferred(true); + preferredLanguages.add(currentLanguage); } return preferredLanguages; diff --git a/app/src/main/res/layout/language_item.xml b/app/src/main/res/layout/language_item.xml index 060d29411..440cd3cd4 100644 --- a/app/src/main/res/layout/language_item.xml +++ b/app/src/main/res/layout/language_item.xml @@ -67,7 +67,7 @@ android:contentDescription="Preferred language delete button" android:duplicateParentState="true" android:soundEffectsEnabled="false" - android:src="@{language.isDefault ? @drawable/ic_icon_empty : @drawable/ic_icon_language_delete}" + android:src="@{@drawable/ic_icon_language_delete}" android:tint="@color/fog" app:srcCompat="@drawable/ic_icon_language_delete" app:visibleGone="@{isPreferred}" /> @@ -95,8 +95,7 @@ android:gravity="center_vertical" android:paddingStart="5dp" android:singleLine="true" - android:text="@{language.isDefault && isPreferred ? `(` + @string/language_default + `) ` + language.name : language.name}" - app:typeface='@{language.isDefault ? "bold" : "normal"}' + android:text="@{language.name}" tool:text="Language Item" />