commit 93a0092cda4db50d435d8478649afe45799ff863 Author: n8fr8 nathan@freitas.net Date: Fri May 11 22:53:52 2018 -0400
update implementation of language selector --- app/build.gradle | 3 ++- app/src/main/java/org/torproject/android/OrbotApp.java | 9 ++++++++- .../java/org/torproject/android/settings/Languages.java | 11 ----------- .../torproject/android/settings/SettingsPreferences.java | 13 ++++++++++++- app/src/main/res/xml-fa/preferences.xml | 15 ++++++++++++--- app/src/main/res/xml/preferences.xml | 9 ++++++++- 6 files changed, 42 insertions(+), 18 deletions(-)
diff --git a/app/build.gradle b/app/build.gradle index 3c106337..9e55cdde 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -5,7 +5,7 @@ android { buildToolsVersion '27.0.3' defaultConfig { applicationId "org.torproject.android" - minSdkVersion 16 + minSdkVersion 14 targetSdkVersion 27 } lintOptions { @@ -76,6 +76,7 @@ android { }
dependencies { + implementation 'com.github.delight-im:Android-Languages:v1.0.1' implementation 'com.android.support.constraint:constraint-layout:1.1.0' implementation project(':orbotservice') implementation 'com.android.support:design:27.1.1' diff --git a/app/src/main/java/org/torproject/android/OrbotApp.java b/app/src/main/java/org/torproject/android/OrbotApp.java index 2bca1b45..0e8e1375 100644 --- a/app/src/main/java/org/torproject/android/OrbotApp.java +++ b/app/src/main/java/org/torproject/android/OrbotApp.java @@ -33,6 +33,8 @@ import org.torproject.android.settings.LocaleHelper; import java.util.Locale; import java.util.Set;
+import im.delight.android.languages.Language; + public class OrbotApp extends Application implements OrbotConstants {
@@ -42,8 +44,11 @@ public class OrbotApp extends Application implements OrbotConstants public void onCreate() { super.onCreate();
+ /** Languages.setup(OrbotMainActivity.class, R.string.menu_settings); Languages.setLanguage(this, Prefs.getDefaultLocale(), true); + **/ + Language.setFromPreference(this, "pref_default_locale");
//check for updates via github, since it is unlikely to be blocked; notify the user of places where upgrades can be found new AppUpdater(this) @@ -61,7 +66,9 @@ public class OrbotApp extends Application implements OrbotConstants @Override public void onConfigurationChanged(Configuration newConfig) { super.onConfigurationChanged(newConfig); - //Log.i(TAG, "onConfigurationChanged " + newConfig.locale.getLanguage()); + Language.setFromPreference(this, "pref_default_locale"); + + //Log.i(TAG, "onConfigurationChanged " + newConfig.locale.getLanguage()); // Languages.setLanguage(this, Prefs.getDefaultLocale(), true); } /** diff --git a/app/src/main/java/org/torproject/android/settings/Languages.java b/app/src/main/java/org/torproject/android/settings/Languages.java index 90ad805c..abed8838 100644 --- a/app/src/main/java/org/torproject/android/settings/Languages.java +++ b/app/src/main/java/org/torproject/android/settings/Languages.java @@ -216,17 +216,6 @@ public class Languages { return nameMap.values().toArray(new String[nameMap.size()]); }
- public int getPosition(Locale locale) { - String localeName = locale.getLanguage(); - int i = 0; - for (String key : nameMap.keySet()) - if (TextUtils.equals(key, localeName)) - return i; - else - i++; - return -1; - } - /** * Get sorted list of supported locales. * diff --git a/app/src/main/java/org/torproject/android/settings/SettingsPreferences.java b/app/src/main/java/org/torproject/android/settings/SettingsPreferences.java index fb01cde1..513432a1 100644 --- a/app/src/main/java/org/torproject/android/settings/SettingsPreferences.java +++ b/app/src/main/java/org/torproject/android/settings/SettingsPreferences.java @@ -14,6 +14,8 @@ import android.preference.PreferenceActivity; import org.torproject.android.R; import org.torproject.android.service.util.Prefs;
+import im.delight.android.languages.Language; + public class SettingsPreferences extends PreferenceActivity { private static final String TAG = "SettingsPreferences"; @@ -26,10 +28,12 @@ public class SettingsPreferences addPreferencesFromResource(R.xml.preferences); getPreferenceManager().setSharedPreferencesMode(Context.MODE_MULTI_PROCESS);
+ prefLocale = (ListPreference) findPreference("pref_default_locale"); + /** Languages languages = Languages.get(this); prefLocale.setEntries(languages.getAllNames()); - prefLocale.setEntryValues(languages.getSupportedLocales()); + prefLocale.setEntryValues(languages.getSupportedLocales());**/ prefLocale.setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
@Override @@ -51,4 +55,11 @@ public class SettingsPreferences super.attachBaseContext(LocaleHelper.onAttach(base)); }
+ @Override + protected void onPause() { + Language.setFromPreference(this, "pref_default_locale", true); + + super.onPause(); + } + } diff --git a/app/src/main/res/xml-fa/preferences.xml b/app/src/main/res/xml-fa/preferences.xml index ebdc3dc6..3ad8a086 100644 --- a/app/src/main/res/xml-fa/preferences.xml +++ b/app/src/main/res/xml-fa/preferences.xml @@ -1,7 +1,16 @@ <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
<PreferenceCategory android:title="@string/pref_general_group"> -<CheckBoxPreference + + <im.delight.android.languages.LanguagePreference + android:key="pref_default_locale" + android:title="@string/set_locale_title" + android:enabled="true" + android:selectable="true" + android:defaultValue="fa" + /> + + <CheckBoxPreference android:defaultValue="true" android:key="pref_start_boot" android:title="@string/pref_start_boot_title" @@ -27,12 +36,12 @@ android:defaultValue="true" android:key="pref_allow_background_starts" android:summary="@string/pref_allow_background_starts_summary" android:title="@string/pref_allow_background_starts_title"/> - +<!-- <ListPreference android:title="@string/set_locale_title" android:key="pref_default_locale" android:summary="@string/set_locale_summary" android:defaultValue="fa"> - </ListPreference> + </ListPreference>-->
</PreferenceCategory> <PreferenceCategory android:title="@string/pref_node_configuration" diff --git a/app/src/main/res/xml/preferences.xml b/app/src/main/res/xml/preferences.xml index 322db8f3..194d6f1a 100644 --- a/app/src/main/res/xml/preferences.xml +++ b/app/src/main/res/xml/preferences.xml @@ -1,6 +1,12 @@ <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
<PreferenceCategory android:title="@string/pref_general_group"> + <im.delight.android.languages.LanguagePreference + android:key="pref_default_locale" + android:title="@string/set_locale_title" + android:enabled="true" + android:selectable="true" /> + <CheckBoxPreference android:defaultValue="true" android:enabled="true" @@ -34,11 +40,12 @@ android:summary="@string/pref_open_proxy_on_all_interfaces_summary" android:title="@string/pref_open_proxy_on_all_interfaces_title" />
+ <!-- <ListPreference android:defaultValue="en" android:key="pref_default_locale" android:summary="@string/set_locale_summary" - android:title="@string/set_locale_title" /> + android:title="@string/set_locale_title" />-->
</PreferenceCategory> <!--
tor-commits@lists.torproject.org