aboutsummaryrefslogtreecommitdiffstats
path: root/main/src/cgeo
diff options
context:
space:
mode:
authorrsudev <rasch@munin-soft.de>2013-07-07 11:59:30 +0200
committerrsudev <rasch@munin-soft.de>2013-07-09 21:49:26 +0200
commitc3f1ba04f11f12c864ec2d7ff46e2574d93b34cf (patch)
treed4d8ac380e94423459b2c95da2b365df7c63ee08 /main/src/cgeo
parentece37925442507a71f12a2a2f531ea213c48cad5 (diff)
downloadcgeo-c3f1ba04f11f12c864ec2d7ff46e2574d93b34cf.zip
cgeo-c3f1ba04f11f12c864ec2d7ff46e2574d93b34cf.tar.gz
cgeo-c3f1ba04f11f12c864ec2d7ff46e2574d93b34cf.tar.bz2
Dynamically bind preferences summary
Diffstat (limited to 'main/src/cgeo')
-rw-r--r--main/src/cgeo/geocaching/settings/NewSettingsActivity.java41
1 files changed, 20 insertions, 21 deletions
diff --git a/main/src/cgeo/geocaching/settings/NewSettingsActivity.java b/main/src/cgeo/geocaching/settings/NewSettingsActivity.java
index bf4ad01..c4fac41 100644
--- a/main/src/cgeo/geocaching/settings/NewSettingsActivity.java
+++ b/main/src/cgeo/geocaching/settings/NewSettingsActivity.java
@@ -25,6 +25,7 @@ import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.os.Environment;
+import android.preference.EditTextPreference;
import android.preference.ListPreference;
import android.preference.Preference;
import android.preference.Preference.OnPreferenceChangeListener;
@@ -42,6 +43,7 @@ import android.widget.EditText;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
+import java.util.Map;
/**
* A {@link PreferenceActivity} that presents a set of application settings. On
@@ -124,16 +126,15 @@ public class NewSettingsActivity extends PreferenceActivity {
initBasicMemberPreferences();
initSend2CgeoPreferences();
- for (String k : new String[] { Settings.KEY_USERNAME, Settings.KEY_PASSWORD,
- Settings.KEY_GCVOTE_PASSWORD, Settings.KEY_SIGNATURE,
- Settings.KEY_MAP_SOURCE, Settings.KEY_RENDER_THEME_BASE_FOLDER,
- Settings.KEY_GPX_EXPORT_DIR, Settings.KEY_GPX_IMPORT_DIR,
- Settings.KEY_MAP_DIRECTORY, Settings.KEY_DEFAULT_NAVIGATION_TOOL,
- Settings.KEY_DEFAULT_NAVIGATION_TOOL_2, Settings.KEY_WEBDEVICE_NAME,
- Settings.FAKEKEY_PREFERENCE_BACKUP_INFO, }) {
- bindSummaryToStringValue(k);
+ Map<String, ?> prefs = PreferenceManager.getDefaultSharedPreferences(getApplicationContext()).getAll();
+ for (String key : prefs.keySet()) {
+ Preference pref = findPreference(key);
+ if (pref instanceof EditTextPreference || pref instanceof EditPasswordPreference) {
+ bindSummaryToStringValue(pref);
+ } else if (pref instanceof NumberPickerPreference) {
+ bindSummaryToIntValue(pref);
+ }
}
- bindSummaryToIntValue(Settings.KEY_ALTITUDE_CORRECTION);
}
// workaround, because OnContextItemSelected nor onMenuItemSelected is never called
@@ -490,17 +491,16 @@ public class NewSettingsActivity extends PreferenceActivity {
* @param key
*/
@SuppressWarnings("deprecation")
- private void bindSummaryToStringValue(String key) {
- Preference p = findPreference(key);
- if (p == null) {
+ private void bindSummaryToStringValue(Preference pref) {
+ if (pref == null) {
return;
}
String value = PreferenceManager
- .getDefaultSharedPreferences(p.getContext())
- .getString(p.getKey(), "");
+ .getDefaultSharedPreferences(pref.getContext())
+ .getString(pref.getKey(), "");
- bindSummaryToValue(p, value);
+ bindSummaryToValue(pref, value);
}
/**
@@ -509,16 +509,15 @@ public class NewSettingsActivity extends PreferenceActivity {
* @param key
*/
@SuppressWarnings("deprecation")
- private void bindSummaryToIntValue(String key) {
- Preference p = findPreference(key);
- if (p == null) {
+ private void bindSummaryToIntValue(Preference pref) {
+ if (pref == null) {
return;
}
int value = PreferenceManager
- .getDefaultSharedPreferences(p.getContext())
- .getInt(p.getKey(), 0);
+ .getDefaultSharedPreferences(pref.getContext())
+ .getInt(pref.getKey(), 0);
- bindSummaryToValue(p, value);
+ bindSummaryToValue(pref, value);
}
}