package de.tu.darmstadt.seemoo.ansian.gui.fragments.settings;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.preference.Preference;
import android.preference.PreferenceFragment;
import android.preference.PreferenceScreen;
import de.tu.darmstadt.seemoo.ansian.model.preferences.MyEditTextPreference;
import de.tu.darmstadt.seemoo.ansian.model.preferences.MySharedPreferences;
/**
* General fragment for preferences
*
*/
public abstract class MyPreferenceFragment extends PreferenceFragment
implements SharedPreferences.OnSharedPreferenceChangeListener, Preference.OnPreferenceClickListener {
@SuppressWarnings("unused")
private static final String LOGTAG = "MyPreferenceFragment";
protected String name;
protected int resID;
protected MySharedPreferences preference;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Define the settings file to use by this settings fragment
getPreferenceManager().setSharedPreferencesName(name);
// Load the preferences from an XML resource
addPreferencesFromResource(resID);
}
@Override
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
Preference pref = findPreference(key);
if (pref instanceof MyEditTextPreference) {
MyEditTextPreference editPref = (MyEditTextPreference) pref;
editPref.updateSummary();
}
preference.loadPreference();
}
@Override
public boolean onPreferenceClick(Preference preference) {
// TODO Auto-generated method stub
return false;
}
public MyPreferenceFragment(MySharedPreferences preference) {
this.preference = preference;
this.name = preference.getName();
this.resID = preference.getResID();
}
public String getTitle() {
return name;
}
@Override
public void onResume() {
super.onResume();
PreferenceScreen bla = getPreferenceScreen();
SharedPreferences blubb = bla.getSharedPreferences();
blubb.registerOnSharedPreferenceChangeListener(this);
}
@Override
public void onPause() {
super.onPause();
getPreferenceScreen().getSharedPreferences().unregisterOnSharedPreferenceChangeListener(this);
}
}