aboutsummaryrefslogtreecommitdiffstats
path: root/main
diff options
context:
space:
mode:
authorBananeweizen <bananeweizen@gmx.de>2014-01-20 19:05:51 +0100
committerBananeweizen <bananeweizen@gmx.de>2014-01-20 19:05:51 +0100
commitd2be8fed38edf156700d6f9029de6fa4bd49afde (patch)
treed6a61846eeb49142567fe040c6028a3eaf98bf66 /main
parent92e5ae8fc4ae77a6fe5cf7d961f9e90468eb3b30 (diff)
downloadcgeo-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.java22
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());
+ }
}