75 lines
2.6 KiB
Java
75 lines
2.6 KiB
Java
/* Copyright (c) 2009, Nathan Freitas, Orbot / The Guardian Project - http://openideals.com/guardian */
|
|
/* See LICENSE for licensing information */
|
|
|
|
package org.torproject.android.settings;
|
|
|
|
import android.content.Context;
|
|
import android.content.SharedPreferences;
|
|
import android.os.Bundle;
|
|
import android.preference.ListPreference;
|
|
import android.preference.Preference;
|
|
import android.preference.Preference.OnPreferenceChangeListener;
|
|
import android.preference.Preference.OnPreferenceClickListener;
|
|
import android.preference.PreferenceActivity;
|
|
|
|
import org.torproject.android.OrbotApp;
|
|
import org.torproject.android.R;
|
|
import org.torproject.android.service.util.TorServiceUtils;
|
|
|
|
import java.util.Locale;
|
|
|
|
|
|
public class SettingsPreferences
|
|
extends PreferenceActivity implements OnPreferenceClickListener {
|
|
private static final String TAG = "SettingsPreferences";
|
|
|
|
private ListPreference prefLocale = null;
|
|
|
|
protected void onCreate(Bundle savedInstanceState) {
|
|
super.onCreate(savedInstanceState);
|
|
|
|
addPreferencesFromResource(R.xml.preferences);
|
|
getPreferenceManager().setSharedPreferencesMode(Context.MODE_MULTI_PROCESS);
|
|
SharedPreferences prefs = TorServiceUtils.getSharedPrefs(getApplicationContext());
|
|
|
|
prefLocale = (ListPreference) findPreference("pref_default_locale");
|
|
prefLocale.setOnPreferenceClickListener(this);
|
|
Languages languages = Languages.get(this);
|
|
prefLocale.setEntries(languages.getAllNames());
|
|
prefLocale.setEntryValues(languages.getSupportedLocales());
|
|
prefLocale.setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
|
|
|
|
@Override
|
|
public boolean onPreferenceChange(Preference preference, Object newValue) {
|
|
String language = (String) newValue;
|
|
if (preference == prefLocale) {
|
|
SharedPreferences settings = TorServiceUtils
|
|
.getSharedPrefs(getApplicationContext());
|
|
|
|
String lang = settings.getString("pref_default_locale",
|
|
Locale.getDefault().getLanguage());
|
|
OrbotApp app = (OrbotApp) getApplication();
|
|
Languages.setLanguage(app, language, true);
|
|
lang = settings.getString("pref_default_locale",
|
|
Locale.getDefault().getLanguage());
|
|
OrbotApp.forceChangeLanguage(SettingsPreferences.this);
|
|
}
|
|
return false;
|
|
}
|
|
});
|
|
|
|
|
|
|
|
}
|
|
|
|
public boolean onPreferenceClick(Preference preference) {
|
|
|
|
setResult(RESULT_OK);
|
|
|
|
|
|
return true;
|
|
}
|
|
|
|
|
|
}
|