diff options
| author | Bananeweizen <bananeweizen@gmx.de> | 2011-08-31 19:58:42 +0200 |
|---|---|---|
| committer | Bananeweizen <bananeweizen@gmx.de> | 2011-08-31 19:58:42 +0200 |
| commit | 384a3bf7c0102f4fd9f593d089c7d41d79331aca (patch) | |
| tree | ec86f0613bdafb886faf4a86ebfa2b2629014b18 /src/cgeo/geocaching/sorting/StateComparator.java | |
| parent | cd51f9ec96c1842ca15343491c93de2cb50f5bb9 (diff) | |
| download | cgeo-384a3bf7c0102f4fd9f593d089c7d41d79331aca.zip cgeo-384a3bf7c0102f4fd9f593d089c7d41d79331aca.tar.gz cgeo-384a3bf7c0102f4fd9f593d089c7d41d79331aca.tar.bz2 | |
new: sort by state, fixes #324
Diffstat (limited to 'src/cgeo/geocaching/sorting/StateComparator.java')
| -rw-r--r-- | src/cgeo/geocaching/sorting/StateComparator.java | 32 |
1 files changed, 32 insertions, 0 deletions
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; + } + +} |
