package com.gettingmobile.goodnews.settings; import android.preference.Preference; import com.gettingmobile.android.app.actions.Action; import com.gettingmobile.android.app.actions.ActionContext; import com.gettingmobile.android.app.actions.SimpleActionController; import java.util.Map; public class PreferenceActionController extends SimpleActionController<String> { private final PreferenceProvider preferenceProvider; public PreferenceActionController(ActionContext<?> context, PreferenceProvider preferenceProvider) { super(context); this.preferenceProvider = preferenceProvider; } public void updateActionPreferenceStatus() { for (Map.Entry<String, Action<?>> entry : actions.entrySet()) { final Preference pref = preferenceProvider.findPreference(entry.getKey()); if (pref != null) { @SuppressWarnings("unchecked") final int state = entry.getValue().getState((ActionContext) context); pref.setEnabled(state != Action.GONE && state != Action.DISABLED); } } } /* * inner classes */ public interface PreferenceProvider { Preference findPreference(CharSequence key); } }