aboutsummaryrefslogtreecommitdiffstats
path: root/main/src/cgeo/geocaching/apps/cache
diff options
context:
space:
mode:
Diffstat (limited to 'main/src/cgeo/geocaching/apps/cache')
-rw-r--r--main/src/cgeo/geocaching/apps/cache/navi/CompassApp.java8
-rw-r--r--main/src/cgeo/geocaching/apps/cache/navi/GoogleMapsApp.java2
-rw-r--r--main/src/cgeo/geocaching/apps/cache/navi/GoogleMapsDirectionApp.java2
-rw-r--r--main/src/cgeo/geocaching/apps/cache/navi/GoogleNavigationApp.java16
-rw-r--r--main/src/cgeo/geocaching/apps/cache/navi/NavigationAppFactory.java35
-rw-r--r--main/src/cgeo/geocaching/apps/cache/navi/StreetviewApp.java8
6 files changed, 43 insertions, 28 deletions
diff --git a/main/src/cgeo/geocaching/apps/cache/navi/CompassApp.java b/main/src/cgeo/geocaching/apps/cache/navi/CompassApp.java
index 4811916..47010df 100644
--- a/main/src/cgeo/geocaching/apps/cache/navi/CompassApp.java
+++ b/main/src/cgeo/geocaching/apps/cache/navi/CompassApp.java
@@ -3,7 +3,7 @@ package cgeo.geocaching.apps.cache.navi;
import cgeo.geocaching.Geocache;
import cgeo.geocaching.R;
import cgeo.geocaching.Waypoint;
-import cgeo.geocaching.cgeonavigate;
+import cgeo.geocaching.CompassActivity;
import cgeo.geocaching.geopoint.Geopoint;
import cgeo.geocaching.ui.Formatter;
@@ -22,18 +22,18 @@ class CompassApp extends AbstractPointNavigationApp {
@Override
public void navigate(Activity activity, Geopoint coords) {
- cgeonavigate.startActivity(activity, getString(R.string.navigation_direct_navigation), getString(R.string.navigation_target), coords, null);
+ CompassActivity.startActivity(activity, getString(R.string.navigation_direct_navigation), getString(R.string.navigation_target), coords, null);
}
@Override
public void navigate(Activity activity, Waypoint waypoint) {
- cgeonavigate.startActivity(activity, waypoint.getPrefix() + "/" + waypoint.getLookup(), waypoint.getName(), waypoint.getCoords(), null,
+ CompassActivity.startActivity(activity, waypoint.getPrefix() + "/" + waypoint.getLookup(), waypoint.getName(), waypoint.getCoords(), null,
waypoint.getWaypointType().getL10n());
}
@Override
public void navigate(Activity activity, Geocache cache) {
- cgeonavigate.startActivity(activity, cache.getGeocode(), cache.getName(), cache.getCoords(), null,
+ CompassActivity.startActivity(activity, cache.getGeocode(), cache.getName(), cache.getCoords(), null,
Formatter.formatCacheInfoShort(cache));
}
diff --git a/main/src/cgeo/geocaching/apps/cache/navi/GoogleMapsApp.java b/main/src/cgeo/geocaching/apps/cache/navi/GoogleMapsApp.java
index eac33cc..03fae9e 100644
--- a/main/src/cgeo/geocaching/apps/cache/navi/GoogleMapsApp.java
+++ b/main/src/cgeo/geocaching/apps/cache/navi/GoogleMapsApp.java
@@ -30,7 +30,7 @@ class GoogleMapsApp extends AbstractPointNavigationApp {
} catch (Exception e) {
// nothing
}
- Log.i("cgBase.runExternalMap: No maps application available.");
+ Log.i("GoogleMapsApp.navigate: No maps application available.");
ActivityMixin.showToast(activity, getString(R.string.err_application_no));
}
diff --git a/main/src/cgeo/geocaching/apps/cache/navi/GoogleMapsDirectionApp.java b/main/src/cgeo/geocaching/apps/cache/navi/GoogleMapsDirectionApp.java
index db4fc1c..a84b7e8 100644
--- a/main/src/cgeo/geocaching/apps/cache/navi/GoogleMapsDirectionApp.java
+++ b/main/src/cgeo/geocaching/apps/cache/navi/GoogleMapsDirectionApp.java
@@ -40,7 +40,7 @@ public class GoogleMapsDirectionApp extends AbstractPointNavigationApp {
}
} catch (Exception e) {
- Log.i("GoogleMapsDirection: application not available.");
+ Log.i("GoogleMapsDirectionApp: application not available.", e);
}
}
diff --git a/main/src/cgeo/geocaching/apps/cache/navi/GoogleNavigationApp.java b/main/src/cgeo/geocaching/apps/cache/navi/GoogleNavigationApp.java
index f1616ad..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) {
- Log.i("cgBase.runNavigation: No navigation application available.");
+ } 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..4db889d 100644
--- a/main/src/cgeo/geocaching/apps/cache/navi/NavigationAppFactory.java
+++ b/main/src/cgeo/geocaching/apps/cache/navi/NavigationAppFactory.java
@@ -1,8 +1,8 @@
package cgeo.geocaching.apps.cache.navi;
import cgeo.geocaching.Geocache;
+import cgeo.geocaching.settings.Settings;
import cgeo.geocaching.R;
-import cgeo.geocaching.Settings;
import cgeo.geocaching.Waypoint;
import cgeo.geocaching.cgeoapplication;
import cgeo.geocaching.activity.ActivityMixin;
@@ -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;
}
diff --git a/main/src/cgeo/geocaching/apps/cache/navi/StreetviewApp.java b/main/src/cgeo/geocaching/apps/cache/navi/StreetviewApp.java
index 012b94f..e2c0828 100644
--- a/main/src/cgeo/geocaching/apps/cache/navi/StreetviewApp.java
+++ b/main/src/cgeo/geocaching/apps/cache/navi/StreetviewApp.java
@@ -4,6 +4,7 @@ import cgeo.geocaching.R;
import cgeo.geocaching.cgeoapplication;
import cgeo.geocaching.activity.ActivityMixin;
import cgeo.geocaching.geopoint.Geopoint;
+import cgeo.geocaching.utils.ProcessUtils;
import android.app.Activity;
import android.content.ActivityNotFoundException;
@@ -12,13 +13,16 @@ import android.net.Uri;
class StreetviewApp extends AbstractPointNavigationApp {
+ private static final String PACKAGE_NAME_STREET_VIEW = "com.google.android.street";
+ private static final boolean INSTALLED = ProcessUtils.isInstalled(PACKAGE_NAME_STREET_VIEW);
+
StreetviewApp() {
super(getString(R.string.cache_menu_streetview), null);
}
@Override
public boolean isInstalled() {
- return true;
+ return INSTALLED;
}
@Override
@@ -26,7 +30,7 @@ class StreetviewApp extends AbstractPointNavigationApp {
try {
activity.startActivity(new Intent(Intent.ACTION_VIEW,
Uri.parse("google.streetview:cbll=" + point.getLatitude() + "," + point.getLongitude())));
- } catch (ActivityNotFoundException e) {
+ } catch (final ActivityNotFoundException e) {
ActivityMixin.showToast(activity, cgeoapplication.getInstance().getString(R.string.err_application_no));
}
}