package com.kenny.openimgur.fragments; import android.os.Bundle; import android.preference.ListPreference; import android.preference.Preference; import android.preference.PreferenceFragment; import com.kenny.openimgur.classes.OpengurApp; /** * Created by kcampagna on 4/16/15. */ public abstract class BasePreferenceFragment extends PreferenceFragment implements Preference.OnPreferenceChangeListener, Preference.OnPreferenceClickListener { protected final String TAG = getClass().getSimpleName(); protected OpengurApp mApp; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); mApp = OpengurApp.getInstance(getActivity()); addPreferencesFromResource(getPreferenceXML()); } /** * Binds a list preference to the OnPreferenceChangeListener and sets it summary * * @param preference The preference to bind */ protected void bindListPreference(Preference preference) { preference.setOnPreferenceChangeListener(this); onPreferenceChange(preference, mApp.getPreferences().getString(preference.getKey(), "")); } @Override public boolean onPreferenceChange(Preference preference, Object newValue) { if (preference instanceof ListPreference) { ListPreference listPreference = (ListPreference) preference; int prefIndex = listPreference.findIndexOfValue(newValue.toString()); if (prefIndex >= 0) preference.setSummary(listPreference.getEntries()[prefIndex]); return true; } return false; } @Override public boolean onPreferenceClick(Preference preference) { return false; } // Returns the xml file to load the preferences from protected abstract int getPreferenceXML(); }