diff options
Diffstat (limited to 'main/src/cgeo/geocaching/apps/cache')
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)); } } |
