PreferenceHostageFragment.java 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
  1. package de.tudarmstadt.informatik.hostage.ui.fragment;
  2. import android.content.SharedPreferences;
  3. import android.os.AsyncTask;
  4. import android.os.Bundle;
  5. import android.preference.EditTextPreference;
  6. import android.preference.MultiSelectListPreference;
  7. import android.preference.Preference;
  8. import android.preference.PreferenceFragment;
  9. import java.util.ArrayList;
  10. import java.util.HashMap;
  11. import java.util.HashSet;
  12. import java.util.List;
  13. import java.util.Set;
  14. import de.tudarmstadt.informatik.hostage.R;
  15. import de.tudarmstadt.informatik.hostage.sync.android.SyncUtils;
  16. /**
  17. * Manages and creates the application preferences view
  18. *
  19. * @author Alexander Brakowski
  20. * @created 02.03.14 21:03
  21. */
  22. public class PreferenceHostageFragment extends PreferenceFragment implements SharedPreferences.OnSharedPreferenceChangeListener {
  23. /**
  24. * Contains preferences for which to display a preview of the value in the summary
  25. */
  26. private HashSet<String> mPrefValuePreviewSet;
  27. /**
  28. * {@inheritDoc}
  29. */
  30. @Override
  31. public void onCreate(Bundle savedInstanceState){
  32. super.onCreate(savedInstanceState);
  33. // these preferences are all text preferences
  34. String[] textPreferences = new String[]{
  35. "pref_external_location",
  36. "pref_upload_server",
  37. "pref_download_server",
  38. "pref_max_connections",
  39. "pref_timeout",
  40. "pref_sleeptime",
  41. "pref_location_time",
  42. "pref_location_retries",
  43. "pref_portscan_timeout"
  44. };
  45. mPrefValuePreviewSet = new HashSet<String>();
  46. mPrefValuePreviewSet.add("pref_external_location");
  47. mPrefValuePreviewSet.add("pref_upload_server");
  48. addPreferencesFromResource(R.xml.settings_preferences);
  49. for(String k: textPreferences){
  50. updatePreferenceSummary(k);
  51. }
  52. }
  53. /**
  54. * Updates the summary text of the given preference
  55. *
  56. * @param key the preference key
  57. */
  58. private void updatePreferenceSummary(String key){
  59. Preference p = findPreference(key);
  60. SharedPreferences sharedPreferences = this.getPreferenceManager().getSharedPreferences();
  61. if(p != null && p instanceof EditTextPreference) {
  62. if (mPrefValuePreviewSet.contains(key)) {
  63. p.setSummary(sharedPreferences.getString(key, ""));
  64. }
  65. }
  66. }
  67. /**
  68. * {@inheritDoc}
  69. */
  70. @Override
  71. public void onResume() {
  72. super.onResume();
  73. getPreferenceManager().getSharedPreferences().registerOnSharedPreferenceChangeListener(this);
  74. }
  75. /**
  76. * {@inheritDoc}
  77. */
  78. @Override
  79. public void onPause() {
  80. getPreferenceManager().getSharedPreferences().unregisterOnSharedPreferenceChangeListener(this);
  81. super.onPause();
  82. }
  83. /* @Override
  84. public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen, Preference preference) {
  85. super.onPreferenceTreeClick(preferenceScreen, preference);
  86. if (preference instanceof PreferenceScreen) {
  87. if(MainActivity.getInstance().mDisplayedFragment != null && MainActivity.getInstance().mDisplayedFragment instanceof UpNavigatible){
  88. ((UpNavigatible) MainActivity.getInstance().mDisplayedFragment).setUpNavigatible(true);
  89. ((UpNavigatible) MainActivity.getInstance().mDisplayedFragment).setUpFragment(SettingsFragment.class);
  90. MainActivity.getInstance().setDrawerIndicatorEnabled(false);
  91. return true;
  92. }
  93. }
  94. return false;
  95. }*/
  96. /**
  97. * {@inheritDoc}
  98. */
  99. @Override
  100. public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
  101. updatePreferenceSummary(key);
  102. }
  103. }