From 8020792024de5466e2c152eac14f4311ff48fda8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20Sch=C3=A4ttgen?= Date: Sun, 12 Jan 2020 16:45:05 +0100 Subject: [PATCH] Fix setting locale on 7.0 --- .../beemdevelopment/aegis/ui/AegisActivity.java | 2 +- .../aegis/ui/PreferencesFragment.java | 16 +++++++++++----- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/com/beemdevelopment/aegis/ui/AegisActivity.java b/app/src/main/java/com/beemdevelopment/aegis/ui/AegisActivity.java index dc050a6b..2de3d3de 100644 --- a/app/src/main/java/com/beemdevelopment/aegis/ui/AegisActivity.java +++ b/app/src/main/java/com/beemdevelopment/aegis/ui/AegisActivity.java @@ -110,7 +110,7 @@ public abstract class AegisActivity extends AppCompatActivity implements AegisAp Configuration config = new Configuration(); config.locale = locale; - getBaseContext().getResources().updateConfiguration(config, getBaseContext().getResources().getDisplayMetrics()); + this.getResources().updateConfiguration(config, this.getResources().getDisplayMetrics()); } /** diff --git a/app/src/main/java/com/beemdevelopment/aegis/ui/PreferencesFragment.java b/app/src/main/java/com/beemdevelopment/aegis/ui/PreferencesFragment.java index d49a271f..c7c2fdf7 100644 --- a/app/src/main/java/com/beemdevelopment/aegis/ui/PreferencesFragment.java +++ b/app/src/main/java/com/beemdevelopment/aegis/ui/PreferencesFragment.java @@ -6,6 +6,7 @@ import android.content.DialogInterface; import android.content.Intent; import android.content.pm.PackageManager; import android.net.Uri; +import android.os.Build; import android.os.Bundle; import android.view.Window; import android.view.WindowManager; @@ -129,11 +130,16 @@ public class PreferencesFragment extends PreferenceFragmentCompat { }); Preference langPreference = findPreference("pref_lang"); - langPreference.setOnPreferenceChangeListener((preference, newValue) -> { - _result.putExtra("needsRecreate", true); - getActivity().recreate(); - return true; - }); + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { + langPreference.setOnPreferenceChangeListener((preference, newValue) -> { + _result.putExtra("needsRecreate", true); + getActivity().recreate(); + return true; + }); + } else { + // Setting locale doesn't work on Marshmallow or below + langPreference.setVisible(false); + } int currentViewMode = app.getPreferences().getCurrentViewMode().ordinal(); Preference viewModePreference = findPreference("pref_view_mode");