aboutsummaryrefslogtreecommitdiffstats
path: root/src/cgeo/geocaching/sorting/DistanceComparator.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/cgeo/geocaching/sorting/DistanceComparator.java')
-rw-r--r--src/cgeo/geocaching/sorting/DistanceComparator.java31
1 files changed, 5 insertions, 26 deletions
diff --git a/src/cgeo/geocaching/sorting/DistanceComparator.java b/src/cgeo/geocaching/sorting/DistanceComparator.java
index 6198753..9a5b551 100644
--- a/src/cgeo/geocaching/sorting/DistanceComparator.java
+++ b/src/cgeo/geocaching/sorting/DistanceComparator.java
@@ -1,6 +1,5 @@
package cgeo.geocaching.sorting;
-import cgeo.geocaching.cgBase;
import cgeo.geocaching.cgCache;
import cgeo.geocaching.geopoint.Geopoint;
@@ -9,17 +8,9 @@ import cgeo.geocaching.geopoint.Geopoint;
*
*/
public class DistanceComparator extends AbstractCacheComparator {
- private Geopoint coords = null;
-
- public DistanceComparator() {
- // nothing
- }
+ private final Geopoint coords;
public DistanceComparator(final Geopoint coords) {
- setCoords(coords);
- }
-
- public void setCoords(final Geopoint coords) {
this.coords = coords;
}
@@ -32,13 +23,7 @@ public class DistanceComparator extends AbstractCacheComparator {
protected int compareCaches(final cgCache cache1, final cgCache cache2) {
if ((cache1.coords == null || cache2.coords == null)
&& cache1.distance != null && cache2.distance != null) {
- if (cache1.distance < cache2.distance) {
- return -1;
- } else if (cache1.distance > cache2.distance) {
- return 1;
- } else {
- return 0;
- }
+ return Double.compare(cache1.distance, cache2.distance);
} else {
if (cache1.coords == null) {
return 1;
@@ -47,15 +32,9 @@ public class DistanceComparator extends AbstractCacheComparator {
return -1;
}
- Double distance1 = cgBase.getDistance(coords, cache1.coords);
- Double distance2 = cgBase.getDistance(coords, cache2.coords);
-
- if (distance1 < distance2) {
- return -1;
- } else if (distance1 > distance2) {
- return 1;
- }
+ return Float.compare(coords.distanceTo(cache1.coords),
+ coords.distanceTo(cache2.coords));
}
- return 0;
}
+
}