diff options
author | Bananeweizen <bananeweizen@gmx.de> | 2012-02-21 08:03:28 +0100 |
---|---|---|
committer | Bananeweizen <bananeweizen@gmx.de> | 2012-02-21 08:03:28 +0100 |
commit | 61b3c7758e4602495c8f356a832a10b2a4e59a2d (patch) | |
tree | 6a5cab003328eb2c01aa887233de171a652a3186 /main/src | |
parent | cfbf1b6507cf62382ccf71b04232fd6be963701c (diff) | |
download | cgeo-61b3c7758e4602495c8f356a832a10b2a4e59a2d.zip cgeo-61b3c7758e4602495c8f356a832a10b2a4e59a2d.tar.gz cgeo-61b3c7758e4602495c8f356a832a10b2a4e59a2d.tar.bz2 |
refactoring: code cleanup
* move human distance code to own class
* remove warning suppression
* fix several compiler warnings
Diffstat (limited to 'main/src')
-rw-r--r-- | main/src/cgeo/geocaching/CacheDetailActivity.java | 5 | ||||
-rw-r--r-- | main/src/cgeo/geocaching/cgBase.java | 38 | ||||
-rw-r--r-- | main/src/cgeo/geocaching/cgeo.java | 3 | ||||
-rw-r--r-- | main/src/cgeo/geocaching/cgeoaddresses.java | 3 | ||||
-rw-r--r-- | main/src/cgeo/geocaching/cgeonavigate.java | 5 | ||||
-rw-r--r-- | main/src/cgeo/geocaching/cgeopopup.java | 3 | ||||
-rw-r--r-- | main/src/cgeo/geocaching/cgeotrackable.java | 3 | ||||
-rw-r--r-- | main/src/cgeo/geocaching/enumerations/WaypointType.java | 1 | ||||
-rw-r--r-- | main/src/cgeo/geocaching/geopoint/HumanDistance.java | 42 | ||||
-rw-r--r-- | main/src/cgeo/geocaching/geopoint/Viewport.java | 1 | ||||
-rw-r--r-- | main/src/cgeo/geocaching/ui/DistanceView.java | 6 |
11 files changed, 61 insertions, 49 deletions
diff --git a/main/src/cgeo/geocaching/CacheDetailActivity.java b/main/src/cgeo/geocaching/CacheDetailActivity.java index c24ea41..528b2e2 100644 --- a/main/src/cgeo/geocaching/CacheDetailActivity.java +++ b/main/src/cgeo/geocaching/CacheDetailActivity.java @@ -13,6 +13,7 @@ import cgeo.geocaching.enumerations.LoadFlags.RemoveFlag; import cgeo.geocaching.enumerations.LogType; import cgeo.geocaching.enumerations.WaypointType; import cgeo.geocaching.geopoint.GeopointFormatter; +import cgeo.geocaching.geopoint.HumanDistance; import cgeo.geocaching.network.HtmlImage; import cgeo.geocaching.network.Parameters; import cgeo.geocaching.ui.DecryptTextClickListener; @@ -690,7 +691,7 @@ public class CacheDetailActivity extends AbstractActivity { StringBuilder dist = new StringBuilder(); if (geo.coordsNow != null && cache != null && cache.getCoords() != null) { - dist.append(cgBase.getHumanDistance(geo.coordsNow.distanceTo(cache.getCoords()))); + dist.append(HumanDistance.getHumanDistance(geo.coordsNow.distanceTo(cache.getCoords()))); } if (cache != null && cache.getElevation() != null) { @@ -1358,7 +1359,7 @@ public class CacheDetailActivity extends AbstractActivity { } // distance - cacheDistanceView = addCacheDetail(R.string.cache_distance, cache.getDistance() != null ? "~" + cgBase.getHumanDistance(cache.getDistance()) : "--"); + cacheDistanceView = addCacheDetail(R.string.cache_distance, cache.getDistance() != null ? "~" + HumanDistance.getHumanDistance(cache.getDistance()) : "--"); // difficulty if (cache.getDifficulty() > 0) { diff --git a/main/src/cgeo/geocaching/cgBase.java b/main/src/cgeo/geocaching/cgBase.java index c03d45a..c88739c 100644 --- a/main/src/cgeo/geocaching/cgBase.java +++ b/main/src/cgeo/geocaching/cgBase.java @@ -19,7 +19,6 @@ import cgeo.geocaching.gcvote.GCVoteRating; import cgeo.geocaching.geopoint.DistanceParser; import cgeo.geocaching.geopoint.Geopoint; import cgeo.geocaching.geopoint.GeopointFormatter.Format; -import cgeo.geocaching.geopoint.IConversion; import cgeo.geocaching.geopoint.Viewport; import cgeo.geocaching.network.HtmlImage; import cgeo.geocaching.network.Parameters; @@ -1695,43 +1694,6 @@ public class cgBase { return trackables; } - public static String getHumanDistance(final Float distanceKilometers) { - if (distanceKilometers == null) { - return "?"; - } - - if (Settings.isUseMetricUnits()) { - if (distanceKilometers > 100) { - return String.format("%d", Math.round(distanceKilometers)) + " km"; - } else if (distanceKilometers > 10) { - return String.format("%.1f", Double.valueOf(Math.round(distanceKilometers * 10.0) / 10.0)) + " km"; - } else if (distanceKilometers > 1) { - return String.format("%.2f", Double.valueOf(Math.round(distanceKilometers * 100.0) / 100.0)) + " km"; - } else if (distanceKilometers > 0.1) { - return String.format("%d", Math.round(distanceKilometers * 1000.0)) + " m"; - } else if (distanceKilometers > 0.01) { - return String.format("%.1f", Double.valueOf(Math.round(distanceKilometers * 1000.0 * 10.0) / 10.0)) + " m"; - } else { - return String.format("%.2f", Double.valueOf(Math.round(distanceKilometers * 1000.0 * 100.0) / 100.0)) + " m"; - } - } else { - final float miles = distanceKilometers / IConversion.miles2km; - if (distanceKilometers > 100) { - return String.format("%d", Math.round(miles)) + " mi"; - } else if (distanceKilometers > 0.5) { - return String.format("%.1f", Double.valueOf(Math.round(miles * 10.0) / 10.0)) + " mi"; - } else if (distanceKilometers > 0.1) { - return String.format("%.2f", Double.valueOf(Math.round(miles * 100.0) / 100.0)) + " mi"; - } else if (distanceKilometers > 0.05) { - return String.format("%d", Math.round(miles * 5280.0)) + " ft"; - } else if (distanceKilometers > 0.01) { - return String.format("%.1f", Double.valueOf(Math.round(miles * 5280 * 10.0) / 10.0)) + " ft"; - } else { - return String.format("%.2f", Double.valueOf(Math.round(miles * 5280 * 100.0) / 100.0)) + " ft"; - } - } - } - /** * Insert the right cache type restriction in parameters * diff --git a/main/src/cgeo/geocaching/cgeo.java b/main/src/cgeo/geocaching/cgeo.java index 6f2c758..c012f3a 100644 --- a/main/src/cgeo/geocaching/cgeo.java +++ b/main/src/cgeo/geocaching/cgeo.java @@ -8,6 +8,7 @@ import cgeo.geocaching.enumerations.LogType; import cgeo.geocaching.enumerations.StatusCode; import cgeo.geocaching.enumerations.WaypointType; import cgeo.geocaching.geopoint.Geopoint; +import cgeo.geocaching.geopoint.HumanDistance; import cgeo.geocaching.maps.CGeoMap; import org.apache.commons.collections.CollectionUtils; @@ -599,7 +600,7 @@ public class cgeo extends AbstractActivity { } } else { if (geo.altitudeNow != null) { - final String humanAlt = cgBase.getHumanDistance(geo.altitudeNow.floatValue() / 1000); + final String humanAlt = HumanDistance.getHumanDistance(geo.altitudeNow.floatValue() / 1000); navLocation.setText(geo.coordsNow + " | " + humanAlt); } else { navLocation.setText(geo.coordsNow.toString()); diff --git a/main/src/cgeo/geocaching/cgeoaddresses.java b/main/src/cgeo/geocaching/cgeoaddresses.java index 27a3110..9170a4a 100644 --- a/main/src/cgeo/geocaching/cgeoaddresses.java +++ b/main/src/cgeo/geocaching/cgeoaddresses.java @@ -2,6 +2,7 @@ package cgeo.geocaching; import cgeo.geocaching.activity.AbstractActivity; import cgeo.geocaching.geopoint.Geopoint; +import cgeo.geocaching.geopoint.HumanDistance; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang3.StringUtils; @@ -101,7 +102,7 @@ public class cgeoaddresses extends AbstractActivity { if (lastLoc != null) { if (address.hasLatitude() && address.hasLongitude()) { - lines.add(cgBase.getHumanDistance(lastLoc.distanceTo(new Geopoint(address.getLatitude(), address.getLongitude())))); + lines.add(HumanDistance.getHumanDistance(lastLoc.distanceTo(new Geopoint(address.getLatitude(), address.getLongitude())))); } } diff --git a/main/src/cgeo/geocaching/cgeonavigate.java b/main/src/cgeo/geocaching/cgeonavigate.java index e5600a9..8540ff4 100644 --- a/main/src/cgeo/geocaching/cgeonavigate.java +++ b/main/src/cgeo/geocaching/cgeonavigate.java @@ -2,6 +2,7 @@ package cgeo.geocaching; import cgeo.geocaching.activity.AbstractActivity; import cgeo.geocaching.geopoint.Geopoint; +import cgeo.geocaching.geopoint.HumanDistance; import cgeo.geocaching.maps.CGeoMap; import cgeo.geocaching.ui.CompassView; @@ -329,7 +330,7 @@ public class cgeonavigate extends AbstractActivity { } cacheHeading = geo.coordsNow.bearingTo(dstCoords); - distanceView.setText(cgBase.getHumanDistance(geo.coordsNow.distanceTo(dstCoords))); + distanceView.setText(HumanDistance.getHumanDistance(geo.coordsNow.distanceTo(dstCoords))); headingView.setText(Math.round(cacheHeading) + "°"); } @@ -372,7 +373,7 @@ public class cgeonavigate extends AbstractActivity { } if (geo.altitudeNow != null) { - final String humanAlt = cgBase.getHumanDistance(geo.altitudeNow.floatValue() / 1000); + final String humanAlt = HumanDistance.getHumanDistance(geo.altitudeNow.floatValue() / 1000); navLocation.setText(geo.coordsNow + " | " + humanAlt); } else { navLocation.setText(geo.coordsNow.toString()); diff --git a/main/src/cgeo/geocaching/cgeopopup.java b/main/src/cgeo/geocaching/cgeopopup.java index 6e1af49..e7bf143 100644 --- a/main/src/cgeo/geocaching/cgeopopup.java +++ b/main/src/cgeo/geocaching/cgeopopup.java @@ -8,6 +8,7 @@ import cgeo.geocaching.enumerations.LoadFlags; import cgeo.geocaching.enumerations.LogType; import cgeo.geocaching.gcvote.GCVote; import cgeo.geocaching.gcvote.GCVoteRating; +import cgeo.geocaching.geopoint.HumanDistance; import cgeo.geocaching.utils.CancellableHandler; import org.apache.commons.lang3.StringUtils; @@ -502,7 +503,7 @@ public class cgeopopup extends AbstractActivity { try { if (geo.coordsNow != null && cache != null && cache.getCoords() != null) { - cacheDistance.setText(cgBase.getHumanDistance(geo.coordsNow.distanceTo(cache.getCoords()))); + cacheDistance.setText(HumanDistance.getHumanDistance(geo.coordsNow.distanceTo(cache.getCoords()))); cacheDistance.bringToFront(); } } catch (Exception e) { diff --git a/main/src/cgeo/geocaching/cgeotrackable.java b/main/src/cgeo/geocaching/cgeotrackable.java index 557d11a..e40e04f 100644 --- a/main/src/cgeo/geocaching/cgeotrackable.java +++ b/main/src/cgeo/geocaching/cgeotrackable.java @@ -1,6 +1,7 @@ package cgeo.geocaching; import cgeo.geocaching.activity.AbstractActivity; +import cgeo.geocaching.geopoint.HumanDistance; import cgeo.geocaching.network.HtmlImage; import org.apache.commons.lang3.StringUtils; @@ -157,7 +158,7 @@ public class cgeotrackable extends AbstractActivity { // trackable distance if (trackable.getDistance() >= 0) { - addDetail(R.string.trackable_distance, cgBase.getHumanDistance(trackable.getDistance())); + addDetail(R.string.trackable_distance, HumanDistance.getHumanDistance(trackable.getDistance())); } // trackable goal diff --git a/main/src/cgeo/geocaching/enumerations/WaypointType.java b/main/src/cgeo/geocaching/enumerations/WaypointType.java index 551ee19..78e5ceb 100644 --- a/main/src/cgeo/geocaching/enumerations/WaypointType.java +++ b/main/src/cgeo/geocaching/enumerations/WaypointType.java @@ -76,6 +76,7 @@ public enum WaypointType { } } + @Override public final String toString() { return getL10n(); } diff --git a/main/src/cgeo/geocaching/geopoint/HumanDistance.java b/main/src/cgeo/geocaching/geopoint/HumanDistance.java new file mode 100644 index 0000000..7ae2684 --- /dev/null +++ b/main/src/cgeo/geocaching/geopoint/HumanDistance.java @@ -0,0 +1,42 @@ +package cgeo.geocaching.geopoint; + +import cgeo.geocaching.Settings; + +public class HumanDistance { + public static String getHumanDistance(final Float distanceKilometers) { + if (distanceKilometers == null) { + return "?"; + } + + if (Settings.isUseMetricUnits()) { + if (distanceKilometers > 100) { + return String.format("%d", Math.round(distanceKilometers)) + " km"; + } else if (distanceKilometers > 10) { + return String.format("%.1f", Double.valueOf(Math.round(distanceKilometers * 10.0) / 10.0)) + " km"; + } else if (distanceKilometers > 1) { + return String.format("%.2f", Double.valueOf(Math.round(distanceKilometers * 100.0) / 100.0)) + " km"; + } else if (distanceKilometers > 0.1) { + return String.format("%d", Math.round(distanceKilometers * 1000.0)) + " m"; + } else if (distanceKilometers > 0.01) { + return String.format("%.1f", Double.valueOf(Math.round(distanceKilometers * 1000.0 * 10.0) / 10.0)) + " m"; + } else { + return String.format("%.2f", Double.valueOf(Math.round(distanceKilometers * 1000.0 * 100.0) / 100.0)) + " m"; + } + } else { + final float miles = distanceKilometers / IConversion.miles2km; + if (distanceKilometers > 100) { + return String.format("%d", Math.round(miles)) + " mi"; + } else if (distanceKilometers > 0.5) { + return String.format("%.1f", Double.valueOf(Math.round(miles * 10.0) / 10.0)) + " mi"; + } else if (distanceKilometers > 0.1) { + return String.format("%.2f", Double.valueOf(Math.round(miles * 100.0) / 100.0)) + " mi"; + } else if (distanceKilometers > 0.05) { + return String.format("%d", Math.round(miles * 5280.0)) + " ft"; + } else if (distanceKilometers > 0.01) { + return String.format("%.1f", Double.valueOf(Math.round(miles * 5280 * 10.0) / 10.0)) + " ft"; + } else { + return String.format("%.2f", Double.valueOf(Math.round(miles * 5280 * 100.0) / 100.0)) + " ft"; + } + } + } +} diff --git a/main/src/cgeo/geocaching/geopoint/Viewport.java b/main/src/cgeo/geocaching/geopoint/Viewport.java index 71508c3..2b76624 100644 --- a/main/src/cgeo/geocaching/geopoint/Viewport.java +++ b/main/src/cgeo/geocaching/geopoint/Viewport.java @@ -33,6 +33,7 @@ public class Viewport { return topRight.getLongitude(); } + @Override public String toString() { return "(" + bottomLeft.toString() + "," + topRight.toString() + ")"; } diff --git a/main/src/cgeo/geocaching/ui/DistanceView.java b/main/src/cgeo/geocaching/ui/DistanceView.java index 49c90b7..83de4aa 100644 --- a/main/src/cgeo/geocaching/ui/DistanceView.java +++ b/main/src/cgeo/geocaching/ui/DistanceView.java @@ -1,7 +1,7 @@ package cgeo.geocaching.ui; -import cgeo.geocaching.cgBase; import cgeo.geocaching.geopoint.Geopoint; +import cgeo.geocaching.geopoint.HumanDistance; import android.content.Context; import android.util.AttributeSet; @@ -30,11 +30,11 @@ public class DistanceView extends TextView { if (cacheCoords == null || coords == null) { return; } - setText(cgBase.getHumanDistance(coords.distanceTo(cacheCoords))); + setText(HumanDistance.getHumanDistance(coords.distanceTo(cacheCoords))); } public void setDistance(Float distance) { - setText("~" + cgBase.getHumanDistance(distance)); + setText("~" + HumanDistance.getHumanDistance(distance)); } public void clear() { |