aboutsummaryrefslogtreecommitdiffstats
path: root/src/org/thialfihar/android/apg/PreferencesActivity.java
diff options
context:
space:
mode:
authorThialfihar <thialfihar@gmail.com>2010-07-18 07:19:57 +0000
committerThialfihar <thialfihar@gmail.com>2010-07-18 07:19:57 +0000
commita34adb09a4ba06a2b1fc8368a4e0db4f12281d17 (patch)
treeb5e31e46b47fd500452109ccef3c95d10938f2fb /src/org/thialfihar/android/apg/PreferencesActivity.java
parentc3600ee679aef673834f57d2f5e05f5eea5351c5 (diff)
downloadopen-keychain-a34adb09a4ba06a2b1fc8368a4e0db4f12281d17.tar.gz
open-keychain-a34adb09a4ba06a2b1fc8368a4e0db4f12281d17.tar.bz2
open-keychain-a34adb09a4ba06a2b1fc8368a4e0db4f12281d17.zip
added a language setting to change the language directly
Diffstat (limited to 'src/org/thialfihar/android/apg/PreferencesActivity.java')
-rw-r--r--src/org/thialfihar/android/apg/PreferencesActivity.java39
1 files changed, 37 insertions, 2 deletions
diff --git a/src/org/thialfihar/android/apg/PreferencesActivity.java b/src/org/thialfihar/android/apg/PreferencesActivity.java
index c8778c780..6e7e6f657 100644
--- a/src/org/thialfihar/android/apg/PreferencesActivity.java
+++ b/src/org/thialfihar/android/apg/PreferencesActivity.java
@@ -16,15 +16,21 @@
package org.thialfihar.android.apg;
+import java.util.Arrays;
+import java.util.HashSet;
+import java.util.Vector;
+
import org.bouncycastle2.bcpg.HashAlgorithmTags;
import org.bouncycastle2.openpgp.PGPEncryptedData;
import android.os.Bundle;
import android.preference.CheckBoxPreference;
+import android.preference.ListPreference;
import android.preference.Preference;
import android.preference.PreferenceActivity;
public class PreferencesActivity extends PreferenceActivity {
+ private ListPreference mLanguage = null;
private IntegerListPreference mPassPhraseCacheTtl = null;
private IntegerListPreference mEncryptionAlgorithm = null;
private IntegerListPreference mHashAlgorithm = null;
@@ -35,12 +41,41 @@ public class PreferencesActivity extends PreferenceActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
-
mPreferences = Preferences.getPreferences(this);
+ BaseActivity.setLanguage(this, mPreferences.getLanguage());
+ super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.apg_preferences);
+ mLanguage = (ListPreference) findPreference(Constants.pref.language);
+ Vector<CharSequence> entryVector = new Vector<CharSequence>(Arrays.asList(mLanguage.getEntries()));
+ Vector<CharSequence> entryValueVector = new Vector<CharSequence>(Arrays.asList(mLanguage.getEntryValues()));
+ String supportedLanguages[] = getResources().getStringArray(R.array.supported_languages);
+ HashSet<String> supportedLanguageSet = new HashSet<String>(Arrays.asList(supportedLanguages));
+ for (int i = entryVector.size() - 1; i > -1; --i)
+ {
+ if (!supportedLanguageSet.contains(entryValueVector.get(i)))
+ {
+ entryVector.remove(i);
+ entryValueVector.remove(i);
+ }
+ }
+ CharSequence dummy[] = new CharSequence[0];
+ mLanguage.setEntries(entryVector.toArray(dummy));
+ mLanguage.setEntryValues(entryValueVector.toArray(dummy));
+ mLanguage.setValue(mPreferences.getLanguage());
+ mLanguage.setSummary(mLanguage.getEntry());
+ mLanguage.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener()
+ {
+ public boolean onPreferenceChange(Preference preference, Object newValue)
+ {
+ mLanguage.setValue(newValue.toString());
+ mLanguage.setSummary(mLanguage.getEntry());
+ mPreferences.setLanguage(newValue.toString());
+ return false;
+ }
+ });
+
mPassPhraseCacheTtl = (IntegerListPreference) findPreference(Constants.pref.pass_phrase_cache_ttl);
mPassPhraseCacheTtl.setValue("" + mPreferences.getPassPhraseCacheTtl());
mPassPhraseCacheTtl.setSummary(mPassPhraseCacheTtl.getEntry());