SettingsActivity.java 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. package de.tudarmstadt.informatik.hostage.ui;
  2. import de.tudarmstadt.informatik.hostage.R;
  3. import android.content.SharedPreferences;
  4. import android.content.SharedPreferences.OnSharedPreferenceChangeListener;
  5. import android.os.Bundle;
  6. import android.preference.EditTextPreference;
  7. import android.preference.Preference;
  8. import android.preference.PreferenceActivity;
  9. import android.widget.Toast;
  10. public class SettingsActivity extends PreferenceActivity implements OnSharedPreferenceChangeListener {
  11. @Override
  12. public void onCreate(Bundle savedInstanceState) {
  13. super.onCreate(savedInstanceState);
  14. addPreferencesFromResource(R.xml.preferences);
  15. Preference pref = findPreference("pref_external_location");
  16. EditTextPreference etp = (EditTextPreference) pref;
  17. pref.setSummary(etp.getText());
  18. pref = findPreference("pref_upload_server");
  19. etp = (EditTextPreference) pref;
  20. pref.setSummary(etp.getText());
  21. }
  22. @Override
  23. protected void onResume() {
  24. super.onResume();
  25. getPreferenceScreen().getSharedPreferences()
  26. .registerOnSharedPreferenceChangeListener(this);
  27. }
  28. @Override
  29. protected void onPause() {
  30. super.onPause();
  31. getPreferenceScreen().getSharedPreferences()
  32. .unregisterOnSharedPreferenceChangeListener(this);
  33. }
  34. @Override
  35. public void onSharedPreferenceChanged(SharedPreferences sharedPreferences,
  36. String key) {
  37. if(key.equals("pref_external_location")){
  38. Preference pref = findPreference(key);
  39. EditTextPreference etp = (EditTextPreference) pref;
  40. String path = etp.getText();
  41. if(!path.startsWith("/"))
  42. path = new String("/").concat(path);
  43. if(!path.endsWith("/"))
  44. path = path.concat(new String("/"));
  45. if (!path.matches("/(([a-zA-Z_0-9])+/)*")){
  46. Toast.makeText(getApplicationContext(), "Path not valid. Must only contain a-zA-Z_0-9", Toast.LENGTH_SHORT).show();
  47. path = "/";
  48. }
  49. pref.setSummary(path);
  50. }
  51. else if(key.equals("pref_upload_server")){
  52. Preference pref = findPreference(key);
  53. EditTextPreference etp = (EditTextPreference) pref;
  54. pref.setSummary(etp.getText());
  55. }
  56. }
  57. }