package com.boardgamegeek.ui.dialog; import android.content.Context; import com.boardgamegeek.R; import com.boardgamegeek.filterer.AverageWeightFilterer; import com.boardgamegeek.filterer.CollectionFilterer; import com.boardgamegeek.util.StringUtils; import java.text.DecimalFormat; public class AverageWeightFilterDialog extends SliderFilterDialog { private static final int FACTOR = 10; private static final DecimalFormat FORMAT = new DecimalFormat("#.0"); @Override protected int getAbsoluteMax() { return (int) (AverageWeightFilterer.MAX_RANGE * FACTOR); } @Override protected int getAbsoluteMin() { return (int) (AverageWeightFilterer.MIN_RANGE * FACTOR); } @Override public int getType(Context context) { return new AverageWeightFilterer(context).getType(); } @Override protected CollectionFilterer getPositiveData(Context context, int min, int max, boolean checkbox) { return new AverageWeightFilterer(context, (double) (min) / FACTOR, (double) (max) / FACTOR, checkbox); } @Override protected int getTitleId() { return R.string.menu_average_weight; } @Override protected int getDescriptionId() { return R.string.filter_description_include_missing_average_weight; } @Override protected InitialValues initValues(CollectionFilterer filter) { double min = AverageWeightFilterer.MIN_RANGE; double max = AverageWeightFilterer.MAX_RANGE; boolean includeUndefined = false; if (filter != null) { AverageWeightFilterer data = (AverageWeightFilterer) filter; min = data.getMin(); max = data.getMax(); includeUndefined = data.includeUndefined(); } return new InitialValues((int) (min * FACTOR), (int) (max * FACTOR), includeUndefined); } @Override protected String getPinText(String value) { return FORMAT.format((double) StringUtils.parseInt(value, 0) / FACTOR); } @Override protected int getPinValue(String text) { return (int) (StringUtils.parseDouble(text) * FACTOR); } }