From 384a3bf7c0102f4fd9f593d089c7d41d79331aca Mon Sep 17 00:00:00 2001 From: Bananeweizen Date: Wed, 31 Aug 2011 19:58:42 +0200 Subject: new: sort by state, fixes #324 --- src/cgeo/geocaching/sorting/StateComparator.java | 32 ++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 src/cgeo/geocaching/sorting/StateComparator.java (limited to 'src/cgeo/geocaching/sorting/StateComparator.java') diff --git a/src/cgeo/geocaching/sorting/StateComparator.java b/src/cgeo/geocaching/sorting/StateComparator.java new file mode 100644 index 0000000..787af5a --- /dev/null +++ b/src/cgeo/geocaching/sorting/StateComparator.java @@ -0,0 +1,32 @@ +package cgeo.geocaching.sorting; + +import cgeo.geocaching.cgCache; + +/** + * sort caches by state (normal, disabled, archived) + * + */ +public class StateComparator extends AbstractCacheComparator implements + CacheComparator { + + @Override + protected boolean canCompare(final cgCache cache1, final cgCache cache2) { + return true; + } + + @Override + protected int compareCaches(final cgCache cache1, final cgCache cache2) { + return getState(cache1) - getState(cache2); + } + + private static int getState(final cgCache cache) { + if (cache.disabled) { + return 1; + } + if (cache.archived) { + return 2; + } + return 0; + } + +} -- cgit v1.1