diff options
| author | Samuel Tardieu <sam@rfc1149.net> | 2013-09-13 15:49:18 +0200 |
|---|---|---|
| committer | Samuel Tardieu <sam@rfc1149.net> | 2013-09-13 15:53:38 +0200 |
| commit | 5cf229429772398511bc54a89df8bfb60033bb15 (patch) | |
| tree | 63be8a31411732468eaae2a534d4234dbf7cf842 | |
| parent | 8ddf9d871db0b39b4240697c73f3fbf073786b87 (diff) | |
| download | cgeo-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.xml | 1 | ||||
| -rw-r--r-- | main/src/cgeo/geocaching/apps/cache/navi/AbstractPointNavigationApp.java | 16 |
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()); } |
