diff options
author | rsudev <rasch@munin-soft.de> | 2013-07-07 11:59:30 +0200 |
---|---|---|
committer | rsudev <rasch@munin-soft.de> | 2013-07-09 21:49:26 +0200 |
commit | c3f1ba04f11f12c864ec2d7ff46e2574d93b34cf (patch) | |
tree | d4d8ac380e94423459b2c95da2b365df7c63ee08 /main/src/cgeo | |
parent | ece37925442507a71f12a2a2f531ea213c48cad5 (diff) | |
download | cgeo-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.java | 41 |
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); } } |