package com.boardgamegeek.sorter; import android.content.Context; import android.database.Cursor; import android.support.annotation.NonNull; import android.support.annotation.StringRes; import com.boardgamegeek.R; import com.boardgamegeek.provider.BggContract.Plays; public class PlayersQuantitySorter extends PlayersSorter { public PlayersQuantitySorter(@NonNull Context context) { super(context); } @StringRes @Override protected int getDescriptionId() { return R.string.menu_sort_quantity; } @Override public int getType() { return PlayersSorterFactory.TYPE_QUANTITY; } @Override protected String getSortColumn() { return Plays.SUM_QUANTITY; } @Override protected boolean isSortDescending() { return true; } @NonNull @Override public String getHeaderText(@NonNull Cursor cursor) { int q = getInt(cursor, Plays.SUM_QUANTITY); String prefix = String.valueOf(q).substring(0, 1); String suffix = ""; if (q >= 10000) { suffix = "0000+"; } else if (q >= 1000) { suffix = "000+"; } else if (q >= 100) { suffix = "00+"; } else if (q >= 10) { suffix = "0+"; } return prefix + suffix; } @Override public String getDisplayInfo(Cursor cursor) { int playCount = getInt(cursor, Plays.SUM_QUANTITY); return context.getResources().getQuantityString(R.plurals.plays_suffix, playCount, playCount); } }