diff --git a/app/src/main/java/com/fox2code/mmm/compat/CompatActivity.java b/app/src/main/java/com/fox2code/mmm/compat/CompatActivity.java index 8630100..d84eb76 100644 --- a/app/src/main/java/com/fox2code/mmm/compat/CompatActivity.java +++ b/app/src/main/java/com/fox2code/mmm/compat/CompatActivity.java @@ -70,7 +70,6 @@ public class CompatActivity extends AppCompatActivity { private CompatActivity.OnBackPressedCallback onBackPressedCallback; private MenuItem.OnMenuItemClickListener menuClickListener; private CharSequence menuContentDescription; - private SharedPreferences mSharedPreferences; @StyleRes private int setThemeDynamic = 0; private boolean onCreateCalledOnce = false; @@ -551,8 +550,8 @@ public class CompatActivity extends AppCompatActivity { @Override protected void attachBaseContext(Context newBase) { - mSharedPreferences= PreferenceManager.getDefaultSharedPreferences(newBase); - Locale locale = new Locale(mSharedPreferences.getString("user_preferred_language", "en")); + SharedPreferences mSharedPreferences = PreferenceManager.getDefaultSharedPreferences(newBase); + Locale locale = new Locale(mSharedPreferences.getString("user_preferred_country", "en")); Context context = CompatWrapper.setLocale(newBase, locale); super.attachBaseContext(context); } diff --git a/app/src/main/java/com/fox2code/mmm/settings/SettingsActivity.java b/app/src/main/java/com/fox2code/mmm/settings/SettingsActivity.java index 28942b1..749f2ec 100644 --- a/app/src/main/java/com/fox2code/mmm/settings/SettingsActivity.java +++ b/app/src/main/java/com/fox2code/mmm/settings/SettingsActivity.java @@ -99,19 +99,34 @@ public class SettingsActivity extends CompatActivity { }); // This is the locale that you wanna your app to launch with. - Locale firstLaunchLocale = new Locale("en"); + String firstLaunchLocale = "en"; - HashSet supportedLocales = new HashSet<>(); - supportedLocales.add(Locale.US); - supportedLocales.add(Locale.CHINA); - supportedLocales.add(Locale.GERMAN); + // Warning! Locales that are't exist will crash the app + HashSet supportedLocales = new HashSet<>(); + supportedLocales.add("cs"); + supportedLocales.add("de"); + supportedLocales.add("es-rMX"); + supportedLocales.add("et"); + supportedLocales.add("fr"); + supportedLocales.add("id"); + supportedLocales.add("ja"); + supportedLocales.add("nb-rNO"); + supportedLocales.add("pl"); + supportedLocales.add("pt-rBR"); + supportedLocales.add("ro"); + supportedLocales.add("ru"); + supportedLocales.add("sk"); + supportedLocales.add("tr"); + supportedLocales.add("vi"); + supportedLocales.add("zh-rCH"); + supportedLocales.add("zh-rTW"); supportedLocales.add(firstLaunchLocale); Preference languageSelector = findPreference("pref_language_selector"); languageSelector.setOnPreferenceClickListener(preference -> { - LanguageSwitcher ls = new LanguageSwitcher(getActivity(), firstLaunchLocale); + LanguageSwitcher ls = new LanguageSwitcher(getActivity(), new Locale(firstLaunchLocale)); ls.showChangeLanguageDialog(getActivity()); - ls.setSupportedLocales(supportedLocales); + ls.setSupportedStringLocales(supportedLocales); return true; });