package de.tudarmstadt.informatik.hostage.ui; import de.tudarmstadt.informatik.hostage.R; import android.content.SharedPreferences; import android.content.SharedPreferences.OnSharedPreferenceChangeListener; import android.os.Bundle; import android.preference.EditTextPreference; import android.preference.Preference; import android.preference.PreferenceActivity; import android.widget.Toast; public class SettingsActivity extends PreferenceActivity implements OnSharedPreferenceChangeListener { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); addPreferencesFromResource(R.xml.preferences); Preference pref = findPreference("pref_external_location"); EditTextPreference etp = (EditTextPreference) pref; pref.setSummary(etp.getText()); pref = findPreference("pref_upload_server"); etp = (EditTextPreference) pref; pref.setSummary(etp.getText()); } @Override protected void onResume() { super.onResume(); getPreferenceScreen().getSharedPreferences() .registerOnSharedPreferenceChangeListener(this); } @Override protected void onPause() { super.onPause(); getPreferenceScreen().getSharedPreferences() .unregisterOnSharedPreferenceChangeListener(this); } @Override public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) { if(key.equals("pref_external_location")){ Preference pref = findPreference(key); EditTextPreference etp = (EditTextPreference) pref; String path = etp.getText(); if(!path.startsWith("/")) path = new String("/").concat(path); if(!path.endsWith("/")) path = path.concat(new String("/")); if (!path.matches("/(([a-zA-Z_0-9])+/)*")){ Toast.makeText(getApplicationContext(), "Path not valid. Must only contain a-zA-Z_0-9", Toast.LENGTH_SHORT).show(); path = "/"; } pref.setSummary(path); } else if(key.equals("pref_upload_server")){ Preference pref = findPreference(key); EditTextPreference etp = (EditTextPreference) pref; pref.setSummary(etp.getText()); } } }