diff options
| author | Bananeweizen <bananeweizen@gmx.de> | 2012-05-31 22:41:16 +0200 |
|---|---|---|
| committer | Bananeweizen <bananeweizen@gmx.de> | 2012-05-31 22:41:16 +0200 |
| commit | 7b4716931ec6ed050588d4197ccbf2bbaa0473b1 (patch) | |
| tree | a277b367162aa4d74c3adb3bafd5746d4fdc9832 /main/src/cgeo/geocaching/sorting | |
| parent | 62636e394a954309899604be1222a5e1a984390b (diff) | |
| download | cgeo-7b4716931ec6ed050588d4197ccbf2bbaa0473b1.zip cgeo-7b4716931ec6ed050588d4197ccbf2bbaa0473b1.tar.gz cgeo-7b4716931ec6ed050588d4197ccbf2bbaa0473b1.tar.bz2 | |
new: sorting by date sorts by distance for equal dates
* much better for simultaneous events on the same date
Diffstat (limited to 'main/src/cgeo/geocaching/sorting')
| -rw-r--r-- | main/src/cgeo/geocaching/sorting/DateComparator.java | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/main/src/cgeo/geocaching/sorting/DateComparator.java b/main/src/cgeo/geocaching/sorting/DateComparator.java index 7129905..3136d47 100644 --- a/main/src/cgeo/geocaching/sorting/DateComparator.java +++ b/main/src/cgeo/geocaching/sorting/DateComparator.java @@ -1,7 +1,9 @@ package cgeo.geocaching.sorting; import cgeo.geocaching.cgCache; +import cgeo.geocaching.cgeoapplication; +import java.util.ArrayList; import java.util.Date; /** @@ -16,10 +18,19 @@ public class DateComparator extends AbstractCacheComparator { @Override protected int compareCaches(cgCache cache1, cgCache cache2) { - Date date1 = cache1.getHiddenDate(); - Date date2 = cache2.getHiddenDate(); + final Date date1 = cache1.getHiddenDate(); + final Date date2 = cache2.getHiddenDate(); if (date1 != null && date2 != null) { - return date1.compareTo(date2); + final int dateDifference = date1.compareTo(date2); + // for equal dates, sort by distance + if (dateDifference == 0) { + final ArrayList<cgCache> list = new ArrayList<cgCache>(); + list.add(cache1); + list.add(cache2); + final DistanceComparator distanceComparator = new DistanceComparator(cgeoapplication.getInstance().currentGeo().getCoords(), list); + return distanceComparator.compare(cache1, cache2); + } + return dateDifference; } if (date1 != null) { return -1; |
