aboutsummaryrefslogtreecommitdiffstats
path: root/main/src/cgeo
diff options
context:
space:
mode:
authorBananeweizen <bananeweizen@gmx.de>2013-06-22 16:05:43 +0200
committerBananeweizen <bananeweizen@gmx.de>2013-06-22 16:05:43 +0200
commit3bab16fcb063a69b3c894343cefcc0eb54958843 (patch)
tree84a9ec25fd0c4fe91def478e54ec235b75f94c84 /main/src/cgeo
parent01bfdcaeeae619fd638f48b8fe94463e8131edd2 (diff)
downloadcgeo-3bab16fcb063a69b3c894343cefcc0eb54958843.zip
cgeo-3bab16fcb063a69b3c894343cefcc0eb54958843.tar.gz
cgeo-3bab16fcb063a69b3c894343cefcc0eb54958843.tar.bz2
fix #2914: bike navigation
Diffstat (limited to 'main/src/cgeo')
-rw-r--r--main/src/cgeo/geocaching/apps/cache/navi/GoogleNavigationApp.java14
-rw-r--r--main/src/cgeo/geocaching/apps/cache/navi/NavigationAppFactory.java33
2 files changed, 29 insertions, 18 deletions
diff --git a/main/src/cgeo/geocaching/apps/cache/navi/GoogleNavigationApp.java b/main/src/cgeo/geocaching/apps/cache/navi/GoogleNavigationApp.java
index 1019b0f..a3532a5 100644
--- a/main/src/cgeo/geocaching/apps/cache/navi/GoogleNavigationApp.java
+++ b/main/src/cgeo/geocaching/apps/cache/navi/GoogleNavigationApp.java
@@ -27,22 +27,28 @@ abstract class GoogleNavigationApp extends AbstractPointNavigationApp {
try {
activity.startActivity(new Intent(Intent.ACTION_VIEW, Uri
.parse("google.navigation:ll=" + coords.getLatitude() + ","
- + coords.getLongitude() + mode)));
+ + coords.getLongitude() + "&mode=" + mode)));
- } catch (Exception e) {
+ } catch (final Exception e) {
Log.i("GoogleNavigationApp.navigate: No navigation application available.", e);
}
}
static class GoogleNavigationWalkingApp extends GoogleNavigationApp {
GoogleNavigationWalkingApp() {
- super(R.string.cache_menu_navigation_walk, "&mode=w");
+ super(R.string.cache_menu_navigation_walk, "w");
}
}
static class GoogleNavigationDrivingApp extends GoogleNavigationApp {
GoogleNavigationDrivingApp() {
- super(R.string.cache_menu_navigation_drive, "&mode=d");
+ super(R.string.cache_menu_navigation_drive, "d");
+ }
+ }
+
+ static class GoogleNavigationBikeApp extends GoogleNavigationApp {
+ GoogleNavigationBikeApp() {
+ super(R.string.cache_menu_navigation_bike, "b");
}
}
} \ No newline at end of file
diff --git a/main/src/cgeo/geocaching/apps/cache/navi/NavigationAppFactory.java b/main/src/cgeo/geocaching/apps/cache/navi/NavigationAppFactory.java
index 5545936..7316d4c 100644
--- a/main/src/cgeo/geocaching/apps/cache/navi/NavigationAppFactory.java
+++ b/main/src/cgeo/geocaching/apps/cache/navi/NavigationAppFactory.java
@@ -11,6 +11,7 @@ import cgeo.geocaching.apps.App;
import cgeo.geocaching.apps.cache.CacheBeaconApp;
import cgeo.geocaching.apps.cache.GccApp;
import cgeo.geocaching.apps.cache.WhereYouGoApp;
+import cgeo.geocaching.apps.cache.navi.GoogleNavigationApp.GoogleNavigationBikeApp;
import cgeo.geocaching.apps.cache.navi.GoogleNavigationApp.GoogleNavigationDrivingApp;
import cgeo.geocaching.apps.cache.navi.GoogleNavigationApp.GoogleNavigationWalkingApp;
import cgeo.geocaching.geopoint.Geopoint;
@@ -59,6 +60,10 @@ public final class NavigationAppFactory extends AbstractAppFactory {
*/
GOOGLE_NAVIGATION_WALK(new GoogleNavigationWalkingApp(), 12),
/**
+ * Google Navigation in walking mode
+ */
+ GOOGLE_NAVIGATION_BIKE(new GoogleNavigationBikeApp(), 21),
+ /**
* Google Maps Directions
*/
GOOGLE_MAPS_DIRECTIONS(new GoogleMapsDirectionApp(), 13),
@@ -134,7 +139,7 @@ public final class NavigationAppFactory extends AbstractAppFactory {
builder.setTitle(R.string.cache_menu_navigate);
final List<NavigationAppsEnum> items = new ArrayList<NavigationAppFactory.NavigationAppsEnum>();
final int defaultNavigationTool = Settings.getDefaultNavigationTool();
- for (NavigationAppsEnum navApp : getInstalledNavigationApps()) {
+ for (final NavigationAppsEnum navApp : getInstalledNavigationApps()) {
if ((showInternalMap || !(navApp.app instanceof InternalMap)) &&
(showDefaultNavigation || defaultNavigationTool != navApp.id)) {
boolean add = false;
@@ -161,8 +166,8 @@ public final class NavigationAppFactory extends AbstractAppFactory {
builder.setAdapter(adapter, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int item) {
- NavigationAppsEnum selectedItem = adapter.getItem(item);
- App app = selectedItem.app;
+ final NavigationAppsEnum selectedItem = adapter.getItem(item);
+ final App app = selectedItem.app;
if (cache != null) {
navigateCache(activity, cache, app);
}
@@ -185,7 +190,7 @@ public final class NavigationAppFactory extends AbstractAppFactory {
*/
public static List<NavigationAppsEnum> getInstalledNavigationApps() {
final List<NavigationAppsEnum> installedNavigationApps = new ArrayList<NavigationAppsEnum>();
- for (NavigationAppsEnum appEnum : NavigationAppsEnum.values()) {
+ for (final NavigationAppsEnum appEnum : NavigationAppsEnum.values()) {
if (appEnum.app.isInstalled()) {
installedNavigationApps.add(appEnum);
}
@@ -200,7 +205,7 @@ public final class NavigationAppFactory extends AbstractAppFactory {
*/
public static List<NavigationAppsEnum> getInstalledDefaultNavigationApps() {
final List<NavigationAppsEnum> installedNavigationApps = new ArrayList<NavigationAppsEnum>();
- for (NavigationAppsEnum appEnum : NavigationAppsEnum.values()) {
+ for (final NavigationAppsEnum appEnum : NavigationAppsEnum.values()) {
if (appEnum.app.isInstalled() && appEnum.app.isDefaultNavigationApp()) {
installedNavigationApps.add(appEnum);
}
@@ -225,9 +230,9 @@ public final class NavigationAppFactory extends AbstractAppFactory {
* @param menu
*/
public static void addMenuItems(final Menu menu, final Geocache cache) {
- for (NavigationAppsEnum navApp : getInstalledNavigationApps()) {
+ for (final NavigationAppsEnum navApp : getInstalledNavigationApps()) {
if (navApp.app instanceof CacheNavigationApp) {
- CacheNavigationApp cacheApp = (CacheNavigationApp) navApp.app;
+ final CacheNavigationApp cacheApp = (CacheNavigationApp) navApp.app;
if (cacheApp.isEnabled(cache)) {
menu.add(0, MENU_ITEM_OFFSET + navApp.id, 0, navApp.app.getName());
}
@@ -236,9 +241,9 @@ public final class NavigationAppFactory extends AbstractAppFactory {
}
public static void addMenuItems(final Menu menu, final Waypoint waypoint) {
- for (NavigationAppsEnum navApp : getInstalledNavigationApps()) {
+ for (final NavigationAppsEnum navApp : getInstalledNavigationApps()) {
if (navApp.app instanceof WaypointNavigationApp) {
- WaypointNavigationApp waypointApp = (WaypointNavigationApp) navApp.app;
+ final WaypointNavigationApp waypointApp = (WaypointNavigationApp) navApp.app;
if (waypointApp.isEnabled(waypoint)) {
menu.add(0, MENU_ITEM_OFFSET + navApp.id, 0, navApp.app.getName());
}
@@ -262,7 +267,7 @@ public final class NavigationAppFactory extends AbstractAppFactory {
private static void navigateCache(Activity activity, Geocache cache, App app) {
if (app instanceof CacheNavigationApp) {
- CacheNavigationApp cacheApp = (CacheNavigationApp) app;
+ final CacheNavigationApp cacheApp = (CacheNavigationApp) app;
cacheApp.navigate(activity, cache);
}
}
@@ -275,21 +280,21 @@ public final class NavigationAppFactory extends AbstractAppFactory {
private static void navigateWaypoint(Activity activity, Waypoint waypoint, App app) {
if (app instanceof WaypointNavigationApp) {
- WaypointNavigationApp waypointApp = (WaypointNavigationApp) app;
+ final WaypointNavigationApp waypointApp = (WaypointNavigationApp) app;
waypointApp.navigate(activity, waypoint);
}
}
private static void navigateGeopoint(Activity activity, Geopoint destination, App app) {
if (app instanceof GeopointNavigationApp) {
- GeopointNavigationApp geopointApp = (GeopointNavigationApp) app;
+ final GeopointNavigationApp geopointApp = (GeopointNavigationApp) app;
geopointApp.navigate(activity, destination);
}
}
private static App getAppFromMenuItem(MenuItem item) {
final int id = item.getItemId();
- for (NavigationAppsEnum navApp : NavigationAppsEnum.values()) {
+ for (final NavigationAppsEnum navApp : NavigationAppsEnum.values()) {
if (MENU_ITEM_OFFSET + navApp.id == id) {
return navApp.app;
}
@@ -362,7 +367,7 @@ public final class NavigationAppFactory extends AbstractAppFactory {
private static App getNavigationAppForId(final int navigationAppId) {
final List<NavigationAppsEnum> installedNavigationApps = getInstalledNavigationApps();
- for (NavigationAppsEnum navigationApp : installedNavigationApps) {
+ for (final NavigationAppsEnum navigationApp : installedNavigationApps) {
if (navigationApp.id == navigationAppId) {
return navigationApp.app;
}