aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSamuel Tardieu <sam@rfc1149.net>2013-09-13 15:49:18 +0200
committerSamuel Tardieu <sam@rfc1149.net>2013-09-13 15:53:38 +0200
commit5cf229429772398511bc54a89df8bfb60033bb15 (patch)
tree63be8a31411732468eaae2a534d4234dbf7cf842
parent8ddf9d871db0b39b4240697c73f3fbf073786b87 (diff)
downloadcgeo-5cf229429772398511bc54a89df8bfb60033bb15.zip
cgeo-5cf229429772398511bc54a89df8bfb60033bb15.tar.gz
cgeo-5cf229429772398511bc54a89df8bfb60033bb15.tar.bz2
fix: do not try to navigate towards unknown (null) coordinates
-rw-r--r--main/res/values/strings.xml1
-rw-r--r--main/src/cgeo/geocaching/apps/cache/navi/AbstractPointNavigationApp.java16
2 files changed, 16 insertions, 1 deletions
diff --git a/main/res/values/strings.xml b/main/res/values/strings.xml
index 012bfe1..959599d 100644
--- a/main/res/values/strings.xml
+++ b/main/res/values/strings.xml
@@ -899,6 +899,7 @@
<string name="destination_set">Set destination</string>
<string name="navigation_direct_navigation">Direct Navigation</string>
<string name="navigation_target">Target</string>
+ <string name="err_nav_no_coordinates">Cannot start navigation with no coordinates</string>
<!-- license -->
<string name="license">License</string>
diff --git a/main/src/cgeo/geocaching/apps/cache/navi/AbstractPointNavigationApp.java b/main/src/cgeo/geocaching/apps/cache/navi/AbstractPointNavigationApp.java
index a3ea57e..7542e24 100644
--- a/main/src/cgeo/geocaching/apps/cache/navi/AbstractPointNavigationApp.java
+++ b/main/src/cgeo/geocaching/apps/cache/navi/AbstractPointNavigationApp.java
@@ -1,8 +1,11 @@
package cgeo.geocaching.apps.cache.navi;
import cgeo.geocaching.Geocache;
+import cgeo.geocaching.R;
import cgeo.geocaching.Waypoint;
+import cgeo.geocaching.activity.ActivityMixin;
import cgeo.geocaching.apps.AbstractApp;
+import cgeo.geocaching.geopoint.Geopoint;
import android.app.Activity;
@@ -21,11 +24,22 @@ abstract class AbstractPointNavigationApp extends AbstractApp implements CacheNa
@Override
public void navigate(Activity activity, Geocache cache) {
- navigate(activity, cache.getCoords());
+ final Geopoint coords = cache.getCoords();
+ if (coords != null) {
+ navigate(activity, coords);
+ } else {
+ ActivityMixin.showToast(activity, activity.getResources().getString(R.string.err_nav_no_coordinates));
+ }
}
@Override
public void navigate(Activity activity, Waypoint waypoint) {
+ final Geopoint coords = waypoint.getCoords();
+ if (coords != null) {
+ navigate(activity, coords);
+ } else {
+ ActivityMixin.showToast(activity, activity.getResources().getString(R.string.err_nav_no_coordinates));
+ }
navigate(activity, waypoint.getCoords());
}