package com.gettingmobile.goodnews.settings; import android.preference.Preference; import android.preference.PreferenceGroup; import com.gettingmobile.android.app.DialogFactory; import com.gettingmobile.android.util.ApiLevel; import com.gettingmobile.goodnews.R; public final class ItemViewSettingsHandler extends ViewSettingsHandler { private static final int ITEM_ACTION_COUNT_WARNING_LEVEL = 4; @Override protected int getPrefResourceId() { return R.xml.pref_view_item_view; } @Override public void setup(final SettingsManager m) { super.setup(m); if (ApiLevel.isAtLeast(11)) { final PreferenceGroup itemActionsGroup = (PreferenceGroup) m.findPreference("item_view_actions"); if (itemActionsGroup != null) { final Preference.OnPreferenceChangeListener onItemActionsChangeListener = new Preference.OnPreferenceChangeListener() { private final int startCount = m.getApp().getSettings().getItemActionButtonCount(); @Override public boolean onPreferenceChange(Preference preference, Object o) { if (startCount < ITEM_ACTION_COUNT_WARNING_LEVEL && (m.getApp().getSettings().getItemActionButtonCount() + 1) == ITEM_ACTION_COUNT_WARNING_LEVEL) { DialogFactory.showConfirmationDialog(m.getActionContext().getActivity(), R.string.pref_item_view_actions, R.string.pref_item_view_actions_warning, R.string.ok); } return true; } }; for (int i = 0; i < itemActionsGroup.getPreferenceCount(); ++i) { itemActionsGroup.getPreference(i).setOnPreferenceChangeListener(onItemActionsChangeListener); } } } } }