SettingsActivity.java 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  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. protected void onResume() {
  23. super.onResume();
  24. getPreferenceScreen().getSharedPreferences()
  25. .registerOnSharedPreferenceChangeListener(this);
  26. }
  27. protected void onPause() {
  28. super.onPause();
  29. getPreferenceScreen().getSharedPreferences()
  30. .unregisterOnSharedPreferenceChangeListener(this);
  31. }
  32. public void onSharedPreferenceChanged(SharedPreferences sharedPreferences,
  33. String key) {
  34. if(key.equals("pref_external_location")){
  35. Preference pref = findPreference(key);
  36. EditTextPreference etp = (EditTextPreference) pref;
  37. String path = etp.getText();
  38. if(!path.startsWith("/"))
  39. path = new String("/").concat(path);
  40. if(!path.endsWith("/"))
  41. path = path.concat(new String("/"));
  42. if (!path.matches("/(([a-zA-Z_0-9])+/)*")){
  43. Toast.makeText(getApplicationContext(), "Path not valid. Must only contain a-zA-Z_0-9", Toast.LENGTH_SHORT).show();
  44. path = "/";
  45. }
  46. pref.setSummary(path);
  47. }
  48. else if(key.equals("pref_upload_server")){
  49. Preference pref = findPreference(key);
  50. EditTextPreference etp = (EditTextPreference) pref;
  51. pref.setSummary(etp.getText());
  52. }
  53. }
  54. }