package cgeo.geocaching.list; import cgeo.geocaching.CgeoApplication; import cgeo.geocaching.R; import cgeo.geocaching.storage.DataStore; import android.support.annotation.NonNull; import android.support.annotation.StringRes; public abstract class PseudoList extends AbstractList { private static final int ALL_LIST_ID = 2; /** * list entry to show all caches */ public static final PseudoList ALL_LIST = new PseudoList(ALL_LIST_ID, R.string.list_all_lists) { @Override public int getNumberOfCaches() { return DataStore.getAllCachesCount(); } }; private static final int NEW_LIST_ID = 3; /** * list entry to create a new list */ public static final AbstractList NEW_LIST = new PseudoList(NEW_LIST_ID, R.string.list_menu_create) { @Override public int getNumberOfCaches() { return -1; } }; private static final int HISTORY_LIST_ID = 4; /** * list entry to create a new list */ public static final AbstractList HISTORY_LIST = new PseudoList(HISTORY_LIST_ID, R.string.menu_history) { @Override public int getNumberOfCaches() { return DataStore.getAllHistoryCachesCount(); } }; /** * private constructor to have all instances as constants in the class */ private PseudoList(final int id, @StringRes final int titleResourceId) { super(id, CgeoApplication.getInstance().getString(titleResourceId)); } @Override public String getTitleAndCount() { return "<" + title + ">"; } @Override @NonNull public String getTitle() { return title; } @Override public boolean isConcrete() { return false; } }