package com.boardgamegeek.ui.dialog; import android.content.Context; import android.content.DialogInterface; import android.support.v7.app.AlertDialog; import com.boardgamegeek.R; import com.boardgamegeek.filterer.CollectionFilterer; import com.boardgamegeek.filterer.ExpansionStatusFilterer; public class ExpansionStatusFilterDialog implements CollectionFilterDialog { private int selectedSubtype = 0; public void createDialog(final Context context, final OnFilterChangedListener listener, CollectionFilterer filter) { init((ExpansionStatusFilterer) filter); new AlertDialog.Builder(context, R.style.Theme_bgglight_Dialog_Alert) .setTitle(R.string.menu_expansion_status) .setSingleChoiceItems(R.array.expansion_status_filter, selectedSubtype, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { selectedSubtype = which; } }) .setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { if (listener != null) { if (selectedSubtype == 0) { listener.removeFilter(getType(context)); } else { listener.addFilter(new ExpansionStatusFilterer(context, selectedSubtype)); } } } }) .setNegativeButton(R.string.cancel, null).create().show(); } @Override public int getType(Context context) { return new ExpansionStatusFilterer(context).getType(); } private void init(ExpansionStatusFilterer filter) { if (filter == null) { selectedSubtype = 0; } else { selectedSubtype = filter.getSelectedSubtype(); } } }