package de.devland.masterpassword.ui.preferences; import android.annotation.TargetApi; import android.content.Context; import android.os.Build; import android.preference.CheckBoxPreference; import android.preference.Preference; import android.util.AttributeSet; import de.devland.esperandro.Esperandro; import de.devland.masterpassword.prefs.DefaultPrefs; /** * Created by David Kunzler on 26.11.2014. */ public class EnableInputStickPreference extends CheckBoxPreference implements Preference.OnPreferenceChangeListener { protected DefaultPrefs defaultPrefs; protected BaseSettingsFragment settingsFragment; public EnableInputStickPreference(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); init(); } @TargetApi(Build.VERSION_CODES.LOLLIPOP) public EnableInputStickPreference(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) { super(context, attrs, defStyleAttr, defStyleRes); init(); } public EnableInputStickPreference(Context context, AttributeSet attrs) { super(context, attrs); init(); } public EnableInputStickPreference(Context context) { super(context); init(); } private void init() { defaultPrefs = Esperandro.getPreferences(DefaultPrefs.class, getContext()); setOnPreferenceChangeListener(this); } public void setSettingsFragment(BaseSettingsFragment settingsFragment) { this.settingsFragment = settingsFragment; updatePreferenceEnabledStatus(isChecked()); } @Override public boolean onPreferenceChange(Preference preference, Object newValue) { updatePreferenceEnabledStatus((Boolean) newValue); return true; } private void updatePreferenceEnabledStatus(boolean enabled) { settingsFragment.findPreference("inputstickKeymap").setEnabled(enabled); } }