aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSven Karsten Greiner <sven@sammyshp.de>2011-09-13 00:21:14 -0700
committerSven Karsten Greiner <sven@sammyshp.de>2011-09-13 00:21:14 -0700
commit0dab75878492f23f345cf70fba70416a14436471 (patch)
tree67cacdacde22e00281ad5f458fd8b05d3d5ad161
parent72bc9f6022e44d4c82407def9a1c81cf3c1d3a6b (diff)
parentaffa2dd88d7080ba85edecf20d8e683567cf5fa4 (diff)
downloadcgeo-0dab75878492f23f345cf70fba70416a14436471.zip
cgeo-0dab75878492f23f345cf70fba70416a14436471.tar.gz
cgeo-0dab75878492f23f345cf70fba70416a14436471.tar.bz2
Merge pull request #427 from samueltardieu/inline-operations
Inline operations regarding Geopoint
-rw-r--r--src/cgeo/geocaching/cgBase.java30
-rw-r--r--src/cgeo/geocaching/cgCache.java4
-rw-r--r--src/cgeo/geocaching/cgCacheListAdapter.java14
-rw-r--r--src/cgeo/geocaching/cgCompassMini.java16
-rw-r--r--src/cgeo/geocaching/cgData.java4
-rw-r--r--src/cgeo/geocaching/cgDirection.java4
-rw-r--r--src/cgeo/geocaching/cgDistanceView.java11
-rw-r--r--src/cgeo/geocaching/cgGeo.java14
-rw-r--r--src/cgeo/geocaching/cgTrackable.java2
-rw-r--r--src/cgeo/geocaching/cgeo.java2
-rw-r--r--src/cgeo/geocaching/cgeocaches.java4
-rw-r--r--src/cgeo/geocaching/cgeodetail.java4
-rw-r--r--src/cgeo/geocaching/cgeonavigate.java10
-rw-r--r--src/cgeo/geocaching/cgeopoint.java2
-rw-r--r--src/cgeo/geocaching/cgeopopup.java2
-rw-r--r--src/cgeo/geocaching/cgeowaypointadd.java2
-rw-r--r--src/cgeo/geocaching/compatibility/Compatibility.java2
-rw-r--r--src/cgeo/geocaching/geopoint/DistanceParser.java4
-rw-r--r--src/cgeo/geocaching/mapcommon/cgMapMyOverlay.java9
-rw-r--r--src/cgeo/geocaching/mapcommon/cgOverlayScale.java3
-rw-r--r--src/cgeo/geocaching/mapcommon/cgeomap.java2
-rw-r--r--src/cgeo/geocaching/sorting/DistanceComparator.java31
22 files changed, 63 insertions, 113 deletions
diff --git a/src/cgeo/geocaching/cgBase.java b/src/cgeo/geocaching/cgBase.java
index c3625dd..4ddae1b 100644
--- a/src/cgeo/geocaching/cgBase.java
+++ b/src/cgeo/geocaching/cgBase.java
@@ -174,9 +174,9 @@ public class cgBase {
private static final Pattern patternViewstateFieldCount = Pattern.compile("id=\"__VIEWSTATEFIELDCOUNT\"[^(value)]+value=\"(\\d+)\"[^>]+>", Pattern.CASE_INSENSITIVE | Pattern.MULTILINE);
private static final Pattern patternViewstates = Pattern.compile("id=\"__VIEWSTATE(\\d*)\"[^(value)]+value=\"([^\"]+)\"[^>]+>", Pattern.CASE_INSENSITIVE | Pattern.MULTILINE);
private static final Pattern patternIsPremium = Pattern.compile("<span id=\"ctl00_litPMLevel\"", Pattern.CASE_INSENSITIVE | Pattern.MULTILINE);
- public static final double miles2km = 1.609344;
- public static final double feet2km = 0.0003048;
- public static final double yards2km = 0.0009144;
+ public static final float miles2km = 1.609344f;
+ public static final float feet2km = 0.0003048f;
+ public static final float yards2km = 0.0009144f;
public static final double deg2rad = Math.PI / 180;
public static final double rad2deg = 180 / Math.PI;
public static final float erad = 6371.0f;
@@ -2363,35 +2363,11 @@ public class cgBase {
return text.trim();
}
- public static double getDistance(final Geopoint coords1, final Geopoint coords2) {
- if (coords1 == null || coords2 == null) {
- return 0;
- }
-
- return coords1.distanceTo(coords2); // TODO Check callers for null and replace them
- }
-
- public static double getHeading(final Geopoint coords1, final Geopoint coords2) {
- return coords1.bearingTo(coords2); // TODO Replace callers
- }
-
- public static Geopoint getRadialDistance(final Geopoint coords, double bearing, double distance) {
- return coords.project(bearing, distance); // TODO Replace callers
- }
-
public String getHumanDistance(Float distance) {
if (distance == null) {
return "?";
}
- return getHumanDistance(Double.valueOf(distance));
- }
-
- public String getHumanDistance(Double distance) {
- if (distance == null) {
- return "?";
- }
-
if (settings.units == cgSettings.unitsImperial) {
distance /= miles2km;
if (distance > 100) {
diff --git a/src/cgeo/geocaching/cgCache.java b/src/cgeo/geocaching/cgCache.java
index 21d78ce..4a16d76 100644
--- a/src/cgeo/geocaching/cgCache.java
+++ b/src/cgeo/geocaching/cgCache.java
@@ -48,8 +48,8 @@ public class cgCache implements ICache {
public String size = "";
public Float difficulty = Float.valueOf(0);
public Float terrain = Float.valueOf(0);
- public Double direction = null;
- public Double distance = null;
+ public Float direction = null;
+ public Float distance = null;
public String latlon = "";
public String latitudeString = "";
public String longitudeString = "";
diff --git a/src/cgeo/geocaching/cgCacheListAdapter.java b/src/cgeo/geocaching/cgCacheListAdapter.java
index dec5bef..6dc63da 100644
--- a/src/cgeo/geocaching/cgCacheListAdapter.java
+++ b/src/cgeo/geocaching/cgCacheListAdapter.java
@@ -50,11 +50,10 @@ public class cgCacheListAdapter extends ArrayAdapter<cgCache> {
private LayoutInflater inflater = null;
private Activity activity = null;
private cgBase base = null;
- private DistanceComparator dstComparator = null;
private CacheComparator statComparator = null;
private boolean historic = false;
private Geopoint coords = null;
- private Double azimuth = Double.valueOf(0);
+ private float azimuth = 0;
private long lastSort = 0L;
private boolean sort = true;
private int checked = 0;
@@ -79,7 +78,6 @@ public class cgCacheListAdapter extends ArrayAdapter<cgCache> {
settings = settingsIn;
list = listIn;
base = baseIn;
- dstComparator = new DistanceComparator();
DisplayMetrics metrics = new DisplayMetrics();
activity.getWindowManager().getDefaultDisplay().getMetrics(metrics);
@@ -257,7 +255,7 @@ public class cgCacheListAdapter extends ArrayAdapter<cgCache> {
return;
}
- dstComparator.setCoords(coordsIn);
+ final DistanceComparator dstComparator = new DistanceComparator(coordsIn);
Collections.sort((List<cgCache>) list, dstComparator);
}
notifyDataSetChanged();
@@ -278,7 +276,7 @@ public class cgCacheListAdapter extends ArrayAdapter<cgCache> {
if (statComparator != null) {
Collections.sort((List<cgCache>) list, statComparator);
} else {
- dstComparator.setCoords(coordsIn);
+ final DistanceComparator dstComparator = new DistanceComparator(coordsIn);
Collections.sort((List<cgCache>) list, dstComparator);
}
notifyDataSetChanged();
@@ -302,12 +300,12 @@ public class cgCacheListAdapter extends ArrayAdapter<cgCache> {
}
}
- public void setActualHeading(Double azimuthIn) {
- if (azimuthIn == null) {
+ public void setActualHeading(Float directionNow) {
+ if (directionNow == null) {
return;
}
- azimuth = azimuthIn;
+ azimuth = directionNow;
if (CollectionUtils.isNotEmpty(compasses)) {
for (cgCompassMini compass : compasses) {
diff --git a/src/cgeo/geocaching/cgCompassMini.java b/src/cgeo/geocaching/cgCompassMini.java
index 2b9d0b6..bd3cad0 100644
--- a/src/cgeo/geocaching/cgCompassMini.java
+++ b/src/cgeo/geocaching/cgCompassMini.java
@@ -16,8 +16,8 @@ public class cgCompassMini extends View {
private Context context = null;
private Geopoint cacheCoords = null;
private Bitmap compassArrow = null;
- private Double azimuth = Double.valueOf(0);
- private Double heading = Double.valueOf(0);
+ private float azimuth = 0;
+ private float heading = 0;
private PaintFlagsDrawFilter setfil = null;
private PaintFlagsDrawFilter remfil = null;
@@ -56,13 +56,13 @@ public class cgCompassMini extends View {
cacheCoords = cacheCoordsIn;
}
- protected void updateAzimuth(Double azimuthIn) {
+ protected void updateAzimuth(float azimuthIn) {
azimuth = azimuthIn;
updateDirection();
}
- protected void updateHeading(Double headingIn) {
+ protected void updateHeading(float headingIn) {
heading = headingIn;
updateDirection();
@@ -73,7 +73,7 @@ public class cgCompassMini extends View {
return;
}
- heading = cgBase.getHeading(coordsIn, cacheCoords);
+ heading = coordsIn.bearingTo(cacheCoords);
updateDirection();
}
@@ -96,7 +96,7 @@ public class cgCompassMini extends View {
protected void onDraw(Canvas canvas){
super.onDraw(canvas);
- Double azimuthRelative = azimuth - heading;
+ float azimuthRelative = azimuth - heading;
if (azimuthRelative < 0) {
azimuthRelative = azimuthRelative + 360;
} else if (azimuthRelative >= 360) {
@@ -118,9 +118,9 @@ public class cgCompassMini extends View {
marginLeft = (getWidth() - compassArrowWidth) / 2;
marginTop = (getHeight() - compassArrowHeight) / 2;
- canvas.rotate(-(azimuthRelative.floatValue()), canvasCenterX, canvasCenterY);
+ canvas.rotate(-azimuthRelative, canvasCenterX, canvasCenterY);
canvas.drawBitmap(compassArrow, marginLeft, marginTop, null);
- canvas.rotate(azimuthRelative.floatValue(), canvasCenterX, canvasCenterY);
+ canvas.rotate(azimuthRelative, canvasCenterX, canvasCenterY);
canvas.setDrawFilter(remfil);
}
diff --git a/src/cgeo/geocaching/cgData.java b/src/cgeo/geocaching/cgData.java
index 6f16430..97afcff 100644
--- a/src/cgeo/geocaching/cgData.java
+++ b/src/cgeo/geocaching/cgData.java
@@ -1930,13 +1930,13 @@ public class cgData {
if (cursor.isNull(index)) {
cache.direction = null;
} else {
- cache.direction = (Double) cursor.getDouble(index);
+ cache.direction = cursor.getFloat(index);
}
index = cursor.getColumnIndex("distance");
if (cursor.isNull(index)) {
cache.distance = null;
} else {
- cache.distance = (Double) cursor.getDouble(index);
+ cache.distance = cursor.getFloat(index);
}
cache.terrain = (Float) cursor.getFloat(cursor.getColumnIndex("terrain"));
cache.latlon = (String) cursor.getString(cursor.getColumnIndex("latlon"));
diff --git a/src/cgeo/geocaching/cgDirection.java b/src/cgeo/geocaching/cgDirection.java
index 29df84d..abc4175 100644
--- a/src/cgeo/geocaching/cgDirection.java
+++ b/src/cgeo/geocaching/cgDirection.java
@@ -15,7 +15,7 @@ public class cgDirection {
private cgeoSensorListener sensorListener = null;
private cgUpdateDir dirUpdate = null;
- public Double directionNow = null;
+ public Float directionNow = null;
public cgDirection(Context contextIn, cgUpdateDir dirUpdateIn) {
context = contextIn;
@@ -63,7 +63,7 @@ public class cgDirection {
@Override
public void onSensorChanged(SensorEvent event) {
- directionNow = Compatibility.getDirectionNow(Double.valueOf(event.values[0]), (Activity)context);
+ directionNow = Compatibility.getDirectionNow(event.values[0], (Activity)context);
if (dirUpdate != null && directionNow != null) {
dirUpdate.updateDir(dir);
diff --git a/src/cgeo/geocaching/cgDistanceView.java b/src/cgeo/geocaching/cgDistanceView.java
index ae9e7b7..9030bbb 100644
--- a/src/cgeo/geocaching/cgDistanceView.java
+++ b/src/cgeo/geocaching/cgDistanceView.java
@@ -27,14 +27,13 @@ public class cgDistanceView extends TextView {
}
public void update(final Geopoint coords) {
- if (cacheCoords == null) return;
- if (coords == null) return;
- if (base == null) return;
-
- setText(base.getHumanDistance(cgBase.getDistance(coords, cacheCoords)));
+ if (cacheCoords == null || coords == null || base == null) {
+ return;
+ }
+ setText(base.getHumanDistance(coords.distanceTo(cacheCoords)));
}
- public void setDistance(Double distance) {
+ public void setDistance(Float distance) {
setText("~" + base.getHumanDistance(distance));
}
diff --git a/src/cgeo/geocaching/cgGeo.java b/src/cgeo/geocaching/cgGeo.java
index c908580..bb9dffa 100644
--- a/src/cgeo/geocaching/cgGeo.java
+++ b/src/cgeo/geocaching/cgGeo.java
@@ -42,7 +42,7 @@ public class cgGeo {
public Geopoint coordsNow = null;
public Geopoint coordsBefore = null;
public Double altitudeNow = null;
- public Double bearingNow = null;
+ public Float bearingNow = null;
public Float speedNow = null;
public Float accuracyNow = null;
public Integer satellitesVisible = null;
@@ -289,7 +289,7 @@ public class cgGeo {
gps = -1;
coordsNow = coords;
altitudeNow = null;
- bearingNow = Double.valueOf(0);
+ bearingNow = 0f;
speedNow = 0f;
accuracyNow = 999f;
@@ -324,9 +324,9 @@ public class cgGeo {
altitudeNow = null;
}
if (location.hasBearing() && gps != -1) {
- bearingNow = Double.valueOf(location.getBearing());
+ bearingNow = location.getBearing();
} else {
- bearingNow = Double.valueOf(0);
+ bearingNow = 0f;
}
if (location.hasSpeed() && gps != -1) {
speedNow = location.getSpeed();
@@ -342,9 +342,9 @@ public class cgGeo {
if (gps == 1) {
// save travelled distance only when location is from GPS
if (coordsBefore != null && coordsNow != null) {
- final double dst = cgBase.getDistance(coordsBefore, coordsNow);
+ final float dst = coordsBefore.distanceTo(coordsNow);
- if (Double.isNaN(dst) == false && dst > 0.005) {
+ if (dst > 0.005) {
distanceNow += dst;
coordsBefore = coordsNow;
@@ -375,7 +375,7 @@ public class cgGeo {
return;
}
- if (settings.publicLoc == 1 && (lastGo4cacheCoords == null || cgBase.getDistance(coordsNow, lastGo4cacheCoords) > 0.75)) {
+ if (settings.publicLoc == 1 && (lastGo4cacheCoords == null || coordsNow.distanceTo(lastGo4cacheCoords) > 0.75)) {
g4cRunning = true;
final String host = "api.go4cache.com";
diff --git a/src/cgeo/geocaching/cgTrackable.java b/src/cgeo/geocaching/cgTrackable.java
index 19b66b8..fb877ad 100644
--- a/src/cgeo/geocaching/cgTrackable.java
+++ b/src/cgeo/geocaching/cgTrackable.java
@@ -23,7 +23,7 @@ public class cgTrackable {
public Spannable nameSp = null;
public String type = null;
public Date released = null;
- public Double distance = null;
+ public Float distance = null;
public String origin = null;
public String owner = null;
public String ownerGuid = null;
diff --git a/src/cgeo/geocaching/cgeo.java b/src/cgeo/geocaching/cgeo.java
index 1c7a4c4..1f6260f 100644
--- a/src/cgeo/geocaching/cgeo.java
+++ b/src/cgeo/geocaching/cgeo.java
@@ -555,7 +555,7 @@ public class cgeo extends AbstractActivity {
if (addCoords == null) {
navLocation.setText(res.getString(R.string.loc_no_addr));
}
- if (addCoords == null || (cgBase.getDistance(geo.coordsNow, addCoords) > 0.5 && addressObtaining == false)) {
+ if (addCoords == null || (geo.coordsNow.distanceTo(addCoords) > 0.5 && addressObtaining == false)) {
(new obtainAddress()).start();
}
} else {
diff --git a/src/cgeo/geocaching/cgeocaches.java b/src/cgeo/geocaching/cgeocaches.java
index e87def5..5fd1db1 100644
--- a/src/cgeo/geocaching/cgeocaches.java
+++ b/src/cgeo/geocaching/cgeocaches.java
@@ -152,7 +152,7 @@ public class cgeocaches extends AbstractListActivity {
private View listFooter = null;
private TextView listFooterText = null;
private ProgressDialog waitDialog = null;
- private Double northHeading = Double.valueOf(0);
+ private Float northHeading = 0f;
private cgGeo geo = null;
private cgDirection dir = null;
private cgUpdateLoc geoUpdate = new update();
@@ -1718,7 +1718,7 @@ public class cgeocaches extends AbstractListActivity {
if (geo.bearingNow != null) {
adapter.setActualHeading(geo.bearingNow);
} else {
- adapter.setActualHeading(Double.valueOf(0));
+ adapter.setActualHeading(0f);
}
}
if (northHeading != null) {
diff --git a/src/cgeo/geocaching/cgeodetail.java b/src/cgeo/geocaching/cgeodetail.java
index 2b35618..340e8ee 100644
--- a/src/cgeo/geocaching/cgeodetail.java
+++ b/src/cgeo/geocaching/cgeodetail.java
@@ -1084,7 +1084,7 @@ public class cgeodetail extends AbstractActivity {
}
if (geo != null && geo.coordsNow != null && cache != null && cache.coords != null) {
- cacheDistance.setText(base.getHumanDistance(cgBase.getDistance(geo.coordsNow, cache.coords)));
+ cacheDistance.setText(base.getHumanDistance(geo.coordsNow.distanceTo(cache.coords)));
cacheDistance.bringToFront();
}
} catch (Exception e) {
@@ -1636,7 +1636,7 @@ public class cgeodetail extends AbstractActivity {
StringBuilder dist = new StringBuilder();
if (geo.coordsNow != null && cache != null && cache.coords != null) {
- dist.append(base.getHumanDistance(cgBase.getDistance(geo.coordsNow, cache.coords)));
+ dist.append(base.getHumanDistance(geo.coordsNow.distanceTo(cache.coords)));
}
if (cache != null && cache.elevation != null) {
diff --git a/src/cgeo/geocaching/cgeonavigate.java b/src/cgeo/geocaching/cgeonavigate.java
index 037db1c..4e0cd34 100644
--- a/src/cgeo/geocaching/cgeonavigate.java
+++ b/src/cgeo/geocaching/cgeonavigate.java
@@ -32,8 +32,8 @@ public class cgeonavigate extends AbstractActivity {
private cgUpdateLoc geoUpdate = new update();
private cgUpdateDir dirUpdate = new UpdateDirection();
private Geopoint dstCoords = null;
- private Double cacheHeading = Double.valueOf(0);
- private Double northHeading = Double.valueOf(0);
+ private float cacheHeading = 0;
+ private float northHeading = 0;
private String title = null;
private String name = null;
private TextView navType = null;
@@ -341,8 +341,8 @@ public class cgeonavigate extends AbstractActivity {
headingView = (TextView) findViewById(R.id.heading);
}
- cacheHeading = cgBase.getHeading(geo.coordsNow, dstCoords);
- distanceView.setText(base.getHumanDistance(cgBase.getDistance(geo.coordsNow, dstCoords)));
+ cacheHeading = geo.coordsNow.bearingTo(dstCoords);
+ distanceView.setText(base.getHumanDistance(geo.coordsNow.distanceTo(dstCoords)));
headingView.setText(String.format(Locale.getDefault(), "%.0f", cacheHeading) + "°");
}
@@ -414,7 +414,7 @@ public class cgeonavigate extends AbstractActivity {
if (geo != null && geo.bearingNow != null) {
northHeading = geo.bearingNow;
} else {
- northHeading = Double.valueOf(0);
+ northHeading = 0;
}
}
} catch (Exception e) {
diff --git a/src/cgeo/geocaching/cgeopoint.java b/src/cgeo/geocaching/cgeopoint.java
index bb817b5..e6483a0 100644
--- a/src/cgeo/geocaching/cgeopoint.java
+++ b/src/cgeo/geocaching/cgeopoint.java
@@ -526,7 +526,7 @@ public class cgeopoint extends AbstractActivity {
return null;
}
- final Geopoint coordsDst = cgBase.getRadialDistance(coords, bearing, distance);
+ final Geopoint coordsDst = coords.project(bearing, distance);
if (coordsDst == null) {
showToast(res.getString(R.string.err_point_location_error));
diff --git a/src/cgeo/geocaching/cgeopopup.java b/src/cgeo/geocaching/cgeopopup.java
index 696fc17..029e8d7 100644
--- a/src/cgeo/geocaching/cgeopopup.java
+++ b/src/cgeo/geocaching/cgeopopup.java
@@ -510,7 +510,7 @@ public class cgeopopup extends AbstractActivity {
try {
if (geo.coordsNow != null && cache != null && cache.coords != null) {
- cacheDistance.setText(base.getHumanDistance(cgBase.getDistance(geo.coordsNow, cache.coords)));
+ cacheDistance.setText(base.getHumanDistance(geo.coordsNow.distanceTo(cache.coords)));
cacheDistance.bringToFront();
}
} catch (Exception e) {
diff --git a/src/cgeo/geocaching/cgeowaypointadd.java b/src/cgeo/geocaching/cgeowaypointadd.java
index eefe2fd..e2ebbb6 100644
--- a/src/cgeo/geocaching/cgeowaypointadd.java
+++ b/src/cgeo/geocaching/cgeowaypointadd.java
@@ -308,7 +308,7 @@ public class cgeowaypointadd extends AbstractActivity {
Double latParsed = null;
Double lonParsed = null;
- final Geopoint coordsDst = cgBase.getRadialDistance(new Geopoint(latitude, longitude), bearing, distance);
+ final Geopoint coordsDst = new Geopoint(latitude, longitude).project(bearing, distance);
latParsed = coordsDst.getLatitude();
lonParsed = coordsDst.getLongitude();
diff --git a/src/cgeo/geocaching/compatibility/Compatibility.java b/src/cgeo/geocaching/compatibility/Compatibility.java
index 18ee8a8..bc58764 100644
--- a/src/cgeo/geocaching/compatibility/Compatibility.java
+++ b/src/cgeo/geocaching/compatibility/Compatibility.java
@@ -27,7 +27,7 @@ public final class Compatibility {
return level8;
}
- public static Double getDirectionNow(final Double directionNowPre,
+ public static Float getDirectionNow(final Float directionNowPre,
final Activity activity) {
AndroidLevel8 level8 = getLevel8();
diff --git a/src/cgeo/geocaching/geopoint/DistanceParser.java b/src/cgeo/geocaching/geopoint/DistanceParser.java
index 3578902..a5b3d7b 100644
--- a/src/cgeo/geocaching/geopoint/DistanceParser.java
+++ b/src/cgeo/geocaching/geopoint/DistanceParser.java
@@ -19,14 +19,14 @@ public final class DistanceParser {
*
* @throws NumberFormatException if the given number is invalid
*/
- public static double parseDistance(String distanceText, final int defaultUnit) {
+ public static float parseDistance(String distanceText, final int defaultUnit) {
final Matcher matcher = pattern.matcher(distanceText);
if (!matcher.find()) {
throw new NumberFormatException(distanceText);
}
- final double value = Double.parseDouble(matcher.group(1));
+ final float value = Float.parseFloat(matcher.group(1));
final String unit = matcher.group(2).toLowerCase();
if (unit.equals("m") || (unit.length() == 0 && defaultUnit == cgSettings.unitsMetric)) {
diff --git a/src/cgeo/geocaching/mapcommon/cgMapMyOverlay.java b/src/cgeo/geocaching/mapcommon/cgMapMyOverlay.java
index ffe3e21..46c42ce 100644
--- a/src/cgeo/geocaching/mapcommon/cgMapMyOverlay.java
+++ b/src/cgeo/geocaching/mapcommon/cgMapMyOverlay.java
@@ -14,7 +14,6 @@ import android.graphics.PaintFlagsDrawFilter;
import android.graphics.Point;
import android.location.Location;
import cgeo.geocaching.R;
-import cgeo.geocaching.cgBase;
import cgeo.geocaching.cgSettings;
import cgeo.geocaching.geopoint.Geopoint;
import cgeo.geocaching.mapinterfaces.GeoPointImpl;
@@ -28,7 +27,7 @@ public class cgMapMyOverlay implements OverlayBase {
private cgSettings settings = null;
private Location coordinates = null;
private GeoPointImpl location = null;
- private Double heading = Double.valueOf(0);
+ private Float heading = 0f;
private Paint accuracyCircle = null;
private Paint historyLine = null;
private Paint historyLineShadow = null;
@@ -59,8 +58,8 @@ public class cgMapMyOverlay implements OverlayBase {
location = settings.getMapFactory().getGeoPointBase(new Geopoint(coordinates));
}
- public void setHeading(Double headingIn) {
- heading = headingIn;
+ public void setHeading(Float bearingNow) {
+ heading = bearingNow;
}
@Override
@@ -128,7 +127,7 @@ public class cgMapMyOverlay implements OverlayBase {
accuracyCircle.setStyle(Style.FILL);
canvas.drawCircle(center.x, center.y, radius, accuracyCircle);
- if (coordinates.getAccuracy() < 50f && ((historyRecent != null && cgBase.getDistance(new Geopoint(historyRecent), new Geopoint(coordinates)) > 0.005) || historyRecent == null)) {
+ if (coordinates.getAccuracy() < 50f && ((historyRecent != null && historyRecent.distanceTo(coordinates) > 5.0) || historyRecent == null)) {
if (historyRecent != null) history.add(historyRecent);
historyRecent = coordinates;
diff --git a/src/cgeo/geocaching/mapcommon/cgOverlayScale.java b/src/cgeo/geocaching/mapcommon/cgOverlayScale.java
index e4db67c..f7fb969 100644
--- a/src/cgeo/geocaching/mapcommon/cgOverlayScale.java
+++ b/src/cgeo/geocaching/mapcommon/cgOverlayScale.java
@@ -59,8 +59,7 @@ public class cgOverlayScale implements OverlayBase {
final Geopoint leftCoords = new Geopoint(center.getLatitudeE6() / 1e6, center.getLongitudeE6() / 1e6 - span /2);
final Geopoint rightCoords = new Geopoint(center.getLatitudeE6() / 1e6, center.getLongitudeE6() / 1e6 + span /2);
- distance = cgBase.getDistance(leftCoords, rightCoords);
- distance = distance / 2;
+ distance = leftCoords.distanceTo(rightCoords) / 2;
distanceRound = 0d;
if(settings.units == cgSettings.unitsImperial) {
diff --git a/src/cgeo/geocaching/mapcommon/cgeomap.java b/src/cgeo/geocaching/mapcommon/cgeomap.java
index 6e7bab6..40f7a3c 100644
--- a/src/cgeo/geocaching/mapcommon/cgeomap.java
+++ b/src/cgeo/geocaching/mapcommon/cgeomap.java
@@ -788,7 +788,7 @@ public class cgeomap extends MapBase implements OnDragListener, ViewFactory {
if (geo.bearingNow != null) {
overlayMyLoc.setHeading(geo.bearingNow);
} else {
- overlayMyLoc.setHeading(Double.valueOf(0));
+ overlayMyLoc.setHeading(0f);
}
repaintRequired = true;
}
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;
}
+
}