From f60a64ef2349a1f9fe6933f028f50e146ec958fd Mon Sep 17 00:00:00 2001 From: Torsten Keil Date: Tue, 21 Feb 2012 21:50:41 +0100 Subject: Implementation for #1155 - the second default navigation tool is introduced --- .../apps/cache/navi/NavigationAppFactory.java | 49 ++++++++++++++++++++-- 1 file changed, 46 insertions(+), 3 deletions(-) (limited to 'main/src/cgeo/geocaching/apps/cache/navi') diff --git a/main/src/cgeo/geocaching/apps/cache/navi/NavigationAppFactory.java b/main/src/cgeo/geocaching/apps/cache/navi/NavigationAppFactory.java index 53240bc..e2a1fc1 100644 --- a/main/src/cgeo/geocaching/apps/cache/navi/NavigationAppFactory.java +++ b/main/src/cgeo/geocaching/apps/cache/navi/NavigationAppFactory.java @@ -90,7 +90,7 @@ public final class NavigationAppFactory extends AbstractAppFactory { /** * Specialized way to handle selection of navigation tool.
* A dialog is created for tool selection and the selected tool is started afterwards. - * + * * @param geo * @param activity * @param cache @@ -103,7 +103,7 @@ public final class NavigationAppFactory extends AbstractAppFactory { * should be false only when called from within the internal map * @param showDefaultNavigation * should be false by default - * + * * @see #showNavigationMenu(cgGeo, Activity, cgCache, cgWaypoint, Geopoint) */ public static void showNavigationMenu(final cgGeo geo, final Activity activity, @@ -297,8 +297,31 @@ public final class NavigationAppFactory extends AbstractAppFactory { } /** + * Starts the second default navigation tool if correctly set and installed or the compass app as default fallback. + * + * @param geo + * @param activity + * @param cache + * @param search + * @param waypoint + * @param destination + */ + public static void startDefaultNavigationApplication2(final cgGeo geo, Activity activity, cgCache cache, + cgWaypoint waypoint, final Geopoint destination) { + final NavigationApp app = getDefaultNavigationApplication2(activity); + + if (app != null) { + try { + app.invoke(geo, activity, cache, waypoint, destination); + } catch (Exception e) { + Log.e(Settings.tag, "NavigationAppFactory.startDefaultNavigationApplication2: " + e.toString()); + } + } + } + + /** * Returns the default navigation tool if correctly set and installed or the compass app as default fallback - * + * * @param activity * @return never null */ @@ -316,4 +339,24 @@ public final class NavigationAppFactory extends AbstractAppFactory { return NavigationAppsEnum.COMPASS.app; } + /** + * Returns the second default navigation tool if correctly set and installed or the compass app as default fallback + * + * @param activity + * @return never null + */ + public static NavigationApp getDefaultNavigationApplication2(Activity activity) { + final int defaultNavigationTool = Settings.getDefaultNavigationTool2(); + + final List installedNavigationApps = getInstalledNavigationApps(activity); + + for (NavigationAppsEnum navigationApp : installedNavigationApps) { + if (navigationApp.id == defaultNavigationTool) { + return navigationApp.app; + } + } + // second default navigation tool wasn't set already or couldn't be found (not installed any more for example) + return NavigationAppsEnum.COMPASS.app; + } + } -- cgit v1.1