aboutsummaryrefslogtreecommitdiffstats
path: root/src/cgeo/geocaching/sorting/StateComparator.java
diff options
context:
space:
mode:
authorblafoo <github@blafoo.de>2011-08-31 23:16:30 +0200
committerblafoo <github@blafoo.de>2011-08-31 23:16:30 +0200
commit6dd358bd3d9d526b44fd2d9552ded0a3d4bc510c (patch)
tree78350ad763f9e1fdae020732ab0be115f3b8269c /src/cgeo/geocaching/sorting/StateComparator.java
parent971bb0dc1d2db6d8c4ba974b68100a8c3d90f9ab (diff)
parent18ff53c1cd02c2b9c477a299b632465cd78241ff (diff)
downloadcgeo-6dd358bd3d9d526b44fd2d9552ded0a3d4bc510c.zip
cgeo-6dd358bd3d9d526b44fd2d9552ded0a3d4bc510c.tar.gz
cgeo-6dd358bd3d9d526b44fd2d9552ded0a3d4bc510c.tar.bz2
Merge remote-tracking branch 'upstream/master' into unittest
Conflicts: res/values/strings.xml src/cgeo/geocaching/cgCache.java
Diffstat (limited to 'src/cgeo/geocaching/sorting/StateComparator.java')
-rw-r--r--src/cgeo/geocaching/sorting/StateComparator.java32
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;
+ }
+
+}