package com.lemoulinstudio.bikefriend.preference;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.preference.EditTextPreference;
import android.preference.ListPreference;
import android.preference.Preference;
import android.preference.PreferenceActivity;
import android.preference.PreferenceGroup;
import com.lemoulinstudio.bikefriend.R;
public class BikefriendPreferenceActivity extends PreferenceActivity
implements SharedPreferences.OnSharedPreferenceChangeListener {
public static String PREFERENCES_NAME = BikefriendPreferences.class.getSimpleName();
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Set which preferences to use.
getPreferenceManager().setSharedPreferencesName(PREFERENCES_NAME);
// Opening the layout
addPreferencesFromResource(R.xml.preferences);
// Init the summary of items recursively.
initSummary(getPreferenceScreen());
}
@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) {
initSummary(findPreference(key));
}
private void initSummary(Preference preference) {
if (preference instanceof PreferenceGroup) {
PreferenceGroup group = (PreferenceGroup) preference;
for (int i = 0; i < group.getPreferenceCount(); i++) {
initSummary(group.getPreference(i));
}
}
else {
if (preference instanceof EditTextPreference) {
EditTextPreference editTextPreference = (EditTextPreference) preference;
preference.setSummary(editTextPreference.getText());
}
else if (preference instanceof ListPreference) {
ListPreference listPreference = (ListPreference) preference;
preference.setSummary(listPreference.getEntry());
}
}
}
}