aboutsummaryrefslogtreecommitdiffstats
path: root/src/org/thialfihar/android/apg/PreferencesActivity.java
diff options
context:
space:
mode:
authorThialfihar <thialfihar@gmail.com>2010-06-17 13:23:07 +0000
committerThialfihar <thialfihar@gmail.com>2010-06-17 13:23:07 +0000
commit1bad192a91364fe48ae38ddcf6fb436a40a82283 (patch)
tree1549299e50016a793bf6d57c5a21add8a3ee3869 /src/org/thialfihar/android/apg/PreferencesActivity.java
parent865c998abdf96f8b97e6bb444b732fa18fc02671 (diff)
downloadopen-keychain-1bad192a91364fe48ae38ddcf6fb436a40a82283.tar.gz
open-keychain-1bad192a91364fe48ae38ddcf6fb436a40a82283.tar.bz2
open-keychain-1bad192a91364fe48ae38ddcf6fb436a40a82283.zip
using proper PreferenceActivity now, tho the underlying storage of the values remained almost the same, some changes how the preferences are accessed and how the cache service is started
Diffstat (limited to 'src/org/thialfihar/android/apg/PreferencesActivity.java')
-rw-r--r--src/org/thialfihar/android/apg/PreferencesActivity.java287
1 files changed, 121 insertions, 166 deletions
diff --git a/src/org/thialfihar/android/apg/PreferencesActivity.java b/src/org/thialfihar/android/apg/PreferencesActivity.java
index e80e1ad5f..3f3a709a9 100644
--- a/src/org/thialfihar/android/apg/PreferencesActivity.java
+++ b/src/org/thialfihar/android/apg/PreferencesActivity.java
@@ -18,202 +18,157 @@ package org.thialfihar.android.apg;
import org.bouncycastle2.bcpg.HashAlgorithmTags;
import org.bouncycastle2.openpgp.PGPEncryptedData;
-import org.thialfihar.android.apg.utils.Choice;
import android.os.Bundle;
-import android.view.View;
-import android.view.View.OnClickListener;
-import android.widget.AdapterView;
-import android.widget.ArrayAdapter;
-import android.widget.CheckBox;
-import android.widget.Spinner;
-import android.widget.AdapterView.OnItemSelectedListener;
-
-public class PreferencesActivity extends BaseActivity {
- private Spinner mPassPhraseCacheTtl = null;
- private Spinner mEncryptionAlgorithm = null;
- private Spinner mHashAlgorithm = null;
- private Spinner mMessageCompression = null;
- private Spinner mFileCompression = null;
- private CheckBox mAsciiArmour = null;
+import android.preference.CheckBoxPreference;
+import android.preference.Preference;
+import android.preference.PreferenceActivity;
+
+public class PreferencesActivity extends PreferenceActivity {
+ private IntegerListPreference mPassPhraseCacheTtl = null;
+ private IntegerListPreference mEncryptionAlgorithm = null;
+ private IntegerListPreference mHashAlgorithm = null;
+ private IntegerListPreference mMessageCompression = null;
+ private IntegerListPreference mFileCompression = null;
+ private CheckBoxPreference mAsciiArmour = null;
+ private Preferences mPreferences;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
- setContentView(R.layout.preferences);
-
- mPassPhraseCacheTtl = (Spinner) findViewById(R.id.passPhraseCacheTtl);
-
- Choice choices[] = {
- new Choice(15, getString(R.string.choice_15secs)),
- new Choice(60, getString(R.string.choice_1min)),
- new Choice(180, getString(R.string.choice_3mins)),
- new Choice(300, getString(R.string.choice_5mins)),
- new Choice(600, getString(R.string.choice_10mins)),
- };
- ArrayAdapter<Choice> adapter =
- new ArrayAdapter<Choice>(this, android.R.layout.simple_spinner_item, choices);
- adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
- mPassPhraseCacheTtl.setAdapter(adapter);
- int passPhraseCache = getPassPhraseCacheTtl();
- for (int i = 0; i < choices.length; ++i) {
- if (choices[i].getId() == passPhraseCache) {
- mPassPhraseCacheTtl.setSelection(i);
- break;
- }
- }
+ mPreferences = Preferences.getPreferences(this);
- mPassPhraseCacheTtl.setOnItemSelectedListener(new OnItemSelectedListener() {
- @Override
- public void onItemSelected(AdapterView<?> adapter, View view, int index, long id) {
- setPassPhraseCacheTtl(((Choice) mPassPhraseCacheTtl.getSelectedItem()).getId());
- }
+ addPreferencesFromResource(R.xml.apg_preferences);
- @Override
- public void onNothingSelected(AdapterView<?> adapter) {
- // nothing to do
+ mPassPhraseCacheTtl = (IntegerListPreference) findPreference(Constants.pref.pass_phrase_cache_ttl);
+ mPassPhraseCacheTtl.setValue("" + mPreferences.getPassPhraseCacheTtl());
+ mPassPhraseCacheTtl.setSummary(mPassPhraseCacheTtl.getEntry());
+ mPassPhraseCacheTtl.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener()
+ {
+ public boolean onPreferenceChange(Preference preference, Object newValue)
+ {
+ mPassPhraseCacheTtl.setValue(newValue.toString());
+ mPassPhraseCacheTtl.setSummary(mPassPhraseCacheTtl.getEntry());
+ mPreferences.setPassPhraseCacheTtl(Integer.parseInt(newValue.toString()));
+ BaseActivity.startCacheService(PreferencesActivity.this, mPreferences);
+ return false;
}
});
- mEncryptionAlgorithm = (Spinner) findViewById(R.id.encryptionAlgorithm);
- choices = new Choice[] {
- new Choice(PGPEncryptedData.AES_128, "AES 128"),
- new Choice(PGPEncryptedData.AES_192, "AES 192"),
- new Choice(PGPEncryptedData.AES_256, "AES 256"),
- new Choice(PGPEncryptedData.BLOWFISH, "Blowfish"),
- new Choice(PGPEncryptedData.TWOFISH, "Twofish"),
- new Choice(PGPEncryptedData.CAST5, "CAST5"),
- new Choice(PGPEncryptedData.DES, "DES"),
- new Choice(PGPEncryptedData.TRIPLE_DES, "Triple DES"),
- new Choice(PGPEncryptedData.IDEA, "IDEA"),
+ mEncryptionAlgorithm = (IntegerListPreference) findPreference(Constants.pref.default_encryption_algorithm);
+ int valueIds[] = {
+ PGPEncryptedData.AES_128, PGPEncryptedData.AES_192, PGPEncryptedData.AES_256,
+ PGPEncryptedData.BLOWFISH, PGPEncryptedData.TWOFISH, PGPEncryptedData.CAST5,
+ PGPEncryptedData.DES, PGPEncryptedData.TRIPLE_DES, PGPEncryptedData.IDEA,
};
- adapter = new ArrayAdapter<Choice>(this, android.R.layout.simple_spinner_item, choices);
- adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
- mEncryptionAlgorithm.setAdapter(adapter);
-
- int defaultEncryptionAlgorithm = getDefaultEncryptionAlgorithm();
- for (int i = 0; i < choices.length; ++i) {
- if (choices[i].getId() == defaultEncryptionAlgorithm) {
- mEncryptionAlgorithm.setSelection(i);
- break;
- }
- }
-
- mEncryptionAlgorithm.setOnItemSelectedListener(new OnItemSelectedListener() {
- @Override
- public void onItemSelected(AdapterView<?> adapter, View view, int index, long id) {
- setDefaultEncryptionAlgorithm(((Choice) mEncryptionAlgorithm.getSelectedItem()).getId());
- }
-
- @Override
- public void onNothingSelected(AdapterView<?> adapter) {
- // nothing to do
- }
- });
-
- mHashAlgorithm = (Spinner) findViewById(R.id.hashAlgorithm);
- choices = new Choice[] {
- new Choice(HashAlgorithmTags.MD5, "MD5"),
- new Choice(HashAlgorithmTags.RIPEMD160, "RIPEMD160"),
- new Choice(HashAlgorithmTags.SHA1, "SHA1"),
- new Choice(HashAlgorithmTags.SHA224, "SHA224"),
- new Choice(HashAlgorithmTags.SHA256, "SHA256"),
- new Choice(HashAlgorithmTags.SHA384, "SHA384"),
- new Choice(HashAlgorithmTags.SHA512, "SHA512"),
+ String entries[] = {
+ "AES-128", "AES-192", "AES-256",
+ "Blowfish", "Twofish", "CAST5",
+ "DES", "Triple DES", "IDEA",
};
- adapter = new ArrayAdapter<Choice>(this, android.R.layout.simple_spinner_item, choices);
- adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
- mHashAlgorithm.setAdapter(adapter);
-
- int defaultHashAlgorithm = getDefaultHashAlgorithm();
- for (int i = 0; i < choices.length; ++i) {
- if (choices[i].getId() == defaultHashAlgorithm) {
- mHashAlgorithm.setSelection(i);
- break;
- }
+ String values[] = new String[valueIds.length];
+ for (int i = 0; i < values.length; ++i) {
+ values[i] = "" + valueIds[i];
}
-
- mHashAlgorithm.setOnItemSelectedListener(new OnItemSelectedListener() {
- @Override
- public void onItemSelected(AdapterView<?> adapter, View view, int index, long id) {
- setDefaultHashAlgorithm(((Choice) mHashAlgorithm.getSelectedItem()).getId());
- }
-
- @Override
- public void onNothingSelected(AdapterView<?> adapter) {
- // nothing to do
+ mEncryptionAlgorithm.setEntries(entries);
+ mEncryptionAlgorithm.setEntryValues(values);
+ mEncryptionAlgorithm.setValue("" + mPreferences.getDefaultEncryptionAlgorithm());
+ mEncryptionAlgorithm.setSummary(mEncryptionAlgorithm.getEntry());
+ mEncryptionAlgorithm.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener()
+ {
+ public boolean onPreferenceChange(Preference preference, Object newValue)
+ {
+ mEncryptionAlgorithm.setValue(newValue.toString());
+ mEncryptionAlgorithm.setSummary(mEncryptionAlgorithm.getEntry());
+ mPreferences.setDefaultEncryptionAlgorithm(Integer.parseInt(newValue.toString()));
+ return false;
}
});
- mMessageCompression = (Spinner) findViewById(R.id.messageCompression);
- choices = new Choice[] {
- new Choice(Id.choice.compression.none, getString(R.string.choice_none)),
- new Choice(Id.choice.compression.zip, "ZIP"),
- new Choice(Id.choice.compression.bzip2, "BZIP2"),
- new Choice(Id.choice.compression.zlib, "ZLIB"),
+ mHashAlgorithm = (IntegerListPreference) findPreference(Constants.pref.default_hash_algorithm);
+ valueIds = new int[] {
+ HashAlgorithmTags.MD5, HashAlgorithmTags.RIPEMD160, HashAlgorithmTags.SHA1,
+ HashAlgorithmTags.SHA224, HashAlgorithmTags.SHA256, HashAlgorithmTags.SHA384,
+ HashAlgorithmTags.SHA512,
};
- adapter = new ArrayAdapter<Choice>(this, android.R.layout.simple_spinner_item, choices);
- adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
- mMessageCompression.setAdapter(adapter);
-
- int defaultMessageCompression = getDefaultMessageCompression();
- for (int i = 0; i < choices.length; ++i) {
- if (choices[i].getId() == defaultMessageCompression) {
- mMessageCompression.setSelection(i);
- break;
- }
+ entries = new String[] {
+ "MD5", "RIPEMD-160", "SHA-1",
+ "SHA-224", "SHA-256", "SHA-384",
+ "SHA-512",
+ };
+ values = new String[valueIds.length];
+ for (int i = 0; i < values.length; ++i) {
+ values[i] = "" + valueIds[i];
}
-
- mMessageCompression.setOnItemSelectedListener(new OnItemSelectedListener() {
- @Override
- public void onItemSelected(AdapterView<?> adapter, View view, int index, long id) {
- setDefaultMessageCompression(((Choice) mMessageCompression.getSelectedItem()).getId());
- }
-
- @Override
- public void onNothingSelected(AdapterView<?> adapter) {
- // nothing to do
+ mHashAlgorithm.setEntries(entries);
+ mHashAlgorithm.setEntryValues(values);
+ mHashAlgorithm.setValue("" + mPreferences.getDefaultHashAlgorithm());
+ mHashAlgorithm.setSummary(mHashAlgorithm.getEntry());
+ mHashAlgorithm.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener()
+ {
+ public boolean onPreferenceChange(Preference preference, Object newValue)
+ {
+ mHashAlgorithm.setValue(newValue.toString());
+ mHashAlgorithm.setSummary(mHashAlgorithm.getEntry());
+ mPreferences.setDefaultHashAlgorithm(Integer.parseInt(newValue.toString()));
+ return false;
}
});
- mFileCompression = (Spinner) findViewById(R.id.fileCompression);
- choices = new Choice[] {
- new Choice(Id.choice.compression.none, getString(R.string.choice_none)),
- new Choice(Id.choice.compression.zip, "ZIP"),
- new Choice(Id.choice.compression.bzip2, "BZIP2"),
- new Choice(Id.choice.compression.zlib, "ZLIB"),
+ mMessageCompression = (IntegerListPreference) findPreference(Constants.pref.default_message_compression);
+ valueIds = new int[] {
+ Id.choice.compression.none, Id.choice.compression.zip,
+ Id.choice.compression.bzip2, Id.choice.compression.zlib,
};
- adapter = new ArrayAdapter<Choice>(this, android.R.layout.simple_spinner_item, choices);
- adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
- mFileCompression.setAdapter(adapter);
-
- int defaultFileCompression = getDefaultFileCompression();
- for (int i = 0; i < choices.length; ++i) {
- if (choices[i].getId() == defaultFileCompression) {
- mFileCompression.setSelection(i);
- break;
- }
+ entries = new String[] {
+ getString(R.string.choice_none), "ZIP",
+ "BZIP2", "ZLIB",
+ };
+ values = new String[valueIds.length];
+ for (int i = 0; i < values.length; ++i) {
+ values[i] = "" + valueIds[i];
}
-
- mFileCompression.setOnItemSelectedListener(new OnItemSelectedListener() {
- @Override
- public void onItemSelected(AdapterView<?> adapter, View view, int index, long id) {
- setDefaultFileCompression(((Choice) mFileCompression.getSelectedItem()).getId());
+ mMessageCompression.setEntries(entries);
+ mMessageCompression.setEntryValues(values);
+ mMessageCompression.setValue("" + mPreferences.getDefaultMessageCompression());
+ mMessageCompression.setSummary(mMessageCompression.getEntry());
+ mMessageCompression.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener()
+ {
+ public boolean onPreferenceChange(Preference preference, Object newValue)
+ {
+ mMessageCompression.setValue(newValue.toString());
+ mMessageCompression.setSummary(mMessageCompression.getEntry());
+ mPreferences.setDefaultMessageCompression(Integer.parseInt(newValue.toString()));
+ return false;
}
+ });
- @Override
- public void onNothingSelected(AdapterView<?> adapter) {
- // nothing to do
+ mFileCompression = (IntegerListPreference) findPreference(Constants.pref.default_file_compression);
+ mFileCompression.setEntries(entries);
+ mFileCompression.setEntryValues(values);
+ mFileCompression.setValue("" + mPreferences.getDefaultFileCompression());
+ mFileCompression.setSummary(mFileCompression.getEntry());
+ mFileCompression.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener()
+ {
+ public boolean onPreferenceChange(Preference preference, Object newValue)
+ {
+ mFileCompression.setValue(newValue.toString());
+ mFileCompression.setSummary(mFileCompression.getEntry());
+ mPreferences.setDefaultFileCompression(Integer.parseInt(newValue.toString()));
+ return false;
}
});
- mAsciiArmour = (CheckBox) findViewById(R.id.asciiArmour);
- mAsciiArmour.setChecked(getDefaultAsciiArmour());
- mAsciiArmour.setOnClickListener(new OnClickListener() {
- @Override
- public void onClick(View v) {
- setDefaultAsciiArmour(mAsciiArmour.isChecked());
+ mAsciiArmour = (CheckBoxPreference) findPreference(Constants.pref.default_ascii_armour);
+ mAsciiArmour.setChecked(mPreferences.getDefaultAsciiArmour());
+ mAsciiArmour.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener()
+ {
+ public boolean onPreferenceChange(Preference preference, Object newValue)
+ {
+ mAsciiArmour.setChecked((Boolean)newValue);
+ mPreferences.setDefaultAsciiArmour((Boolean)newValue);
+ return false;
}
});
}