PreferenceHostageFragment.java 4.3 KB

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