diff options
| author | Bananeweizen <bananeweizen@gmx.de> | 2014-01-20 19:05:51 +0100 |
|---|---|---|
| committer | Bananeweizen <bananeweizen@gmx.de> | 2014-01-20 19:05:51 +0100 |
| commit | d2be8fed38edf156700d6f9029de6fa4bd49afde (patch) | |
| tree | d6a61846eeb49142567fe040c6028a3eaf98bf66 /main | |
| parent | 92e5ae8fc4ae77a6fe5cf7d961f9e90468eb3b30 (diff) | |
| download | cgeo-d2be8fed38edf156700d6f9029de6fa4bd49afde.zip cgeo-d2be8fed38edf156700d6f9029de6fa4bd49afde.tar.gz cgeo-d2be8fed38edf156700d6f9029de6fa4bd49afde.tar.bz2 | |
fix #3555: No marker on external map
Diffstat (limited to 'main')
| -rw-r--r-- | main/src/cgeo/geocaching/apps/cache/navi/GoogleMapsApp.java | 22 |
1 files changed, 19 insertions, 3 deletions
diff --git a/main/src/cgeo/geocaching/apps/cache/navi/GoogleMapsApp.java b/main/src/cgeo/geocaching/apps/cache/navi/GoogleMapsApp.java index 60d6e31..819638c 100644 --- a/main/src/cgeo/geocaching/apps/cache/navi/GoogleMapsApp.java +++ b/main/src/cgeo/geocaching/apps/cache/navi/GoogleMapsApp.java @@ -1,6 +1,8 @@ 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.geopoint.Geopoint; import cgeo.geocaching.utils.Log; @@ -22,10 +24,15 @@ class GoogleMapsApp extends AbstractPointNavigationApp { @Override public void navigate(Activity activity, Geopoint point) { - // INFO: q parameter works with Google Maps, but breaks cooperation with all other apps + navigate(activity, point, activity.getString(R.string.waypoint)); + } + + private static void navigate(Activity activity, Geopoint point, String label) { try { - activity.startActivity(new Intent(Intent.ACTION_VIEW, - Uri.parse("geo:" + point.getLatitude() + "," + point.getLongitude()))); + final String geoLocation = "geo:" + point.getLatitude() + "," + point.getLongitude(); + final String query = point.getLatitude() + "," + point.getLongitude() + "(" + label + ")"; + final String uriString = geoLocation + "?q=" + Uri.encode(query); + activity.startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(uriString))); return; } catch (RuntimeException e) { // nothing @@ -35,4 +42,13 @@ class GoogleMapsApp extends AbstractPointNavigationApp { ActivityMixin.showToast(activity, getString(R.string.err_application_no)); } + @Override + public void navigate(Activity activity, Geocache cache) { + navigate(activity, cache.getCoords(), cache.getName()); + } + + @Override + public void navigate(Activity activity, Waypoint waypoint) { + navigate(activity, waypoint.getCoords(), waypoint.getName()); + } } |
