@Override public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) { if (key.equals(Prefs.KEY_DIST_UNIT)) { distUnitPref.setSummary( Utils.getDistUnit( this, Integer.parseInt(sharedPreferences.getString(Prefs.KEY_DIST_UNIT, "0")))); } else if (key.equals(Prefs.KEY_DEFAULT_LOCATION)) { locationPref.setSummary(sharedPreferences.getString(key, "")); } else if (key.equals(Prefs.KEY_STATUS_FILTER)) { filterPref.setSummary( BreweryStatusFilterPreference.toString( this, sharedPreferences.getInt(key, BreweryStatusFilterPreference.DEFAULT_VALUE))); } else if (key.equals(Prefs.KEY_NEARBY_DISPLAY_MAP)) { String[] values = SettingsActivity.this.getResources().getStringArray(R.array.nearby_display); int index = Integer.parseInt(sharedPreferences.getString(key, Prefs.KEY_NEARBY_DISPLAY_LIST)); nearbyDisplayPref.setSummary(values[index]); } }
@Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); addPreferencesFromResource(R.xml.settings); mPrefs = Prefs.getSettings(this); mEditor = Prefs.getSettingsEditor(this); mSaver = Prefs.getSettingsSaver(this); distUnitPref = findPreference(Prefs.KEY_DIST_UNIT); distUnitPref.setSummary( Utils.getDistUnit(this, Integer.parseInt(mPrefs.getString(Prefs.KEY_DIST_UNIT, "0")))); distUnitPref.setOnPreferenceChangeListener( new OnPreferenceChangeListener() { @Override public boolean onPreferenceChange(Preference preference, Object newValue) { distUnitPref.setSummary( Utils.getDistUnit(SettingsActivity.this, Integer.parseInt((String) newValue))); return true; } }); locationPref = findPreference(Prefs.KEY_DEFAULT_LOCATION); locationPref.setSummary( mPrefs.getString(Prefs.KEY_DEFAULT_LOCATION, getString(R.string.defaultLocationSummary))); locationPref.setOnPreferenceChangeListener( new OnPreferenceChangeListener() { @Override public boolean onPreferenceChange(Preference preference, Object newValue) { String newLoc = newValue.toString(); return setupLocationList(newLoc); } }); filterPref = findPreference(Prefs.KEY_STATUS_FILTER); int filter = mPrefs.getInt(Prefs.KEY_STATUS_FILTER, BreweryStatusFilterPreference.DEFAULT_VALUE); filterPref.setSummary(BreweryStatusFilterPreference.toString(getApplicationContext(), filter)); filterPref.setOnPreferenceChangeListener( new OnPreferenceChangeListener() { @Override public boolean onPreferenceChange(Preference preference, Object newValue) { return true; } }); nearbyDisplayPref = findPreference(Prefs.KEY_NEARBY_DISPLAY); if (Utils.checkPlayServices(this) && (Utils.checkOpenGLVersion(this) >= 2)) { nearbyDisplayPref.setOnPreferenceChangeListener( new OnPreferenceChangeListener() { @Override public boolean onPreferenceChange(Preference preference, Object newValue) { String[] values = SettingsActivity.this.getResources().getStringArray(R.array.nearby_display); int index = Integer.parseInt((String) newValue); nearbyDisplayPref.setSummary(values[index]); return true; } }); } else { // Device doesn't support maps. mEditor.putString(Prefs.KEY_NEARBY_DISPLAY, Prefs.KEY_NEARBY_DISPLAY_LIST); mSaver.savePreferences(mEditor, false); nearbyDisplayPref.setEnabled(false); } String[] values = SettingsActivity.this.getResources().getStringArray(R.array.nearby_display); int index = Integer.parseInt(mPrefs.getString(Prefs.KEY_NEARBY_DISPLAY, "error")); nearbyDisplayPref.setSummary(values[index]); }