PreferenceHostageFrament.java 2.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. package de.tudarmstadt.informatik.hostage.ui2.fragment;
  2. import android.content.SharedPreferences;
  3. import android.os.Bundle;
  4. import android.preference.EditTextPreference;
  5. import android.preference.Preference;
  6. import android.preference.PreferenceFragment;
  7. import android.preference.PreferenceScreen;
  8. import java.util.HashMap;
  9. import de.tudarmstadt.informatik.hostage.R;
  10. import de.tudarmstadt.informatik.hostage.ui2.activity.MainActivity;
  11. import de.tudarmstadt.informatik.hostage.ui2.fragment.interfaces.UpNavigatible;
  12. /**
  13. * @author Alexander Brakowski
  14. * @created 02.03.14 21:03
  15. */
  16. public class PreferenceHostageFrament extends PreferenceFragment implements SharedPreferences.OnSharedPreferenceChangeListener {
  17. private HashMap<String, String> mSuffixMap;
  18. private String[] mTextPreferences;
  19. @Override
  20. public void onCreate(Bundle savedInstanceState){
  21. super.onCreate(savedInstanceState);
  22. this.mTextPreferences = new String[]{
  23. "pref_external_location",
  24. "pref_upload_server",
  25. "pref_max_connections",
  26. "pref_timeout",
  27. "pref_sleeptime",
  28. "pref_location_time",
  29. "pref_location_retries"
  30. };
  31. this.mSuffixMap = new HashMap<String, String>();
  32. this.mSuffixMap.put("pref_timeout", "s");
  33. this.mSuffixMap.put("pref_sleeptime", "ms");
  34. this.mSuffixMap.put("pref_location_time", "ms");
  35. addPreferencesFromResource(R.xml.settings_preferences);
  36. for(String k: this.mTextPreferences){
  37. updatePreferenceSummary(k);
  38. }
  39. }
  40. private void updatePreferenceSummary(String key){
  41. Preference p = findPreference(key);
  42. SharedPreferences sharedPreferences = this.getPreferenceManager().getSharedPreferences();
  43. if(p != null && p instanceof EditTextPreference){
  44. String suffix = "";
  45. if(this.mSuffixMap.containsKey(key)){
  46. suffix = this.mSuffixMap.get(key);
  47. }
  48. p.setSummary(sharedPreferences.getString(key, "") + " " + suffix);
  49. }
  50. }
  51. @Override
  52. public void onResume() {
  53. super.onResume();
  54. getPreferenceManager().getSharedPreferences().registerOnSharedPreferenceChangeListener(this);
  55. }
  56. @Override
  57. public void onPause() {
  58. getPreferenceManager().getSharedPreferences().unregisterOnSharedPreferenceChangeListener(this);
  59. super.onPause();
  60. }
  61. /* @Override
  62. public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen, Preference preference) {
  63. super.onPreferenceTreeClick(preferenceScreen, preference);
  64. if (preference instanceof PreferenceScreen) {
  65. if(MainActivity.getInstance().mDisplayedFragment != null && MainActivity.getInstance().mDisplayedFragment instanceof UpNavigatible){
  66. ((UpNavigatible) MainActivity.getInstance().mDisplayedFragment).setUpNavigatible(true);
  67. ((UpNavigatible) MainActivity.getInstance().mDisplayedFragment).setUpFragment(SettingsFragment.class);
  68. MainActivity.getInstance().setDrawerIndicatorEnabled(false);
  69. return true;
  70. }
  71. }
  72. return false;
  73. }*/
  74. @Override
  75. public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
  76. updatePreferenceSummary(key);
  77. }
  78. }