diff options
Diffstat (limited to 'src/cgeo/geocaching/apps/cache/navi/NavigationAppFactory.java')
| -rw-r--r-- | src/cgeo/geocaching/apps/cache/navi/NavigationAppFactory.java | 99 |
1 files changed, 50 insertions, 49 deletions
diff --git a/src/cgeo/geocaching/apps/cache/navi/NavigationAppFactory.java b/src/cgeo/geocaching/apps/cache/navi/NavigationAppFactory.java index 70609de..63d4b2f 100644 --- a/src/cgeo/geocaching/apps/cache/navi/NavigationAppFactory.java +++ b/src/cgeo/geocaching/apps/cache/navi/NavigationAppFactory.java @@ -1,6 +1,11 @@ package cgeo.geocaching.apps.cache.navi; -import java.util.UUID; +import cgeo.geocaching.cgCache; +import cgeo.geocaching.cgGeo; +import cgeo.geocaching.cgSettings; +import cgeo.geocaching.cgWaypoint; +import cgeo.geocaching.apps.AbstractAppFactory; +import cgeo.geocaching.geopoint.Geopoint; import org.apache.commons.lang3.ArrayUtils; @@ -9,55 +14,51 @@ import android.content.res.Resources; import android.util.Log; import android.view.Menu; import android.view.MenuItem; -import cgeo.geocaching.cgCache; -import cgeo.geocaching.cgGeo; -import cgeo.geocaching.cgSettings; -import cgeo.geocaching.cgWaypoint; -import cgeo.geocaching.apps.AbstractAppFactory; -import cgeo.geocaching.geopoint.Geopoint; + +import java.util.UUID; public final class NavigationAppFactory extends AbstractAppFactory { - private static NavigationApp[] apps = new NavigationApp[] {}; - - private static NavigationApp[] getNavigationApps(Resources res) { - if (ArrayUtils.isEmpty(apps)) { - apps = new NavigationApp[] { - // compass - new RadarApp(res), - new InternalMap(res), - new StaticMapApp(res), - new LocusApp(res), - new RMapsApp(res), - new GoogleMapsApp(res), - new GoogleNavigationApp(res), - new StreetviewApp(res)}; - } - return apps; - } - - public static void addMenuItems(Menu menu, Activity activity, - Resources res) { - for (NavigationApp app : getNavigationApps(res)) { - if (app.isInstalled(activity)) { - menu.add(0, app.getId(), 0, app.getName()); - } - } - } - - public static boolean onMenuItemSelected(final MenuItem item, - final cgGeo geo, Activity activity, Resources res, - cgCache cache, - final UUID searchId, cgWaypoint waypoint, final Geopoint destination) { - NavigationApp app = (NavigationApp) getAppFromMenuItem(item, apps); - if (app != null) { - try { - return app.invoke(geo, activity, res, cache, - searchId, waypoint, destination); - } catch (Exception e) { - Log.e(cgSettings.tag, "NavigationAppFactory.onMenuItemSelected: " + e.toString()); - } - } - return false; - } + private static NavigationApp[] apps = new NavigationApp[] {}; + + private static NavigationApp[] getNavigationApps(Resources res) { + if (ArrayUtils.isEmpty(apps)) { + apps = new NavigationApp[] { + // compass + new RadarApp(res), + new InternalMap(res), + new StaticMapApp(res), + new LocusApp(res), + new RMapsApp(res), + new GoogleMapsApp(res), + new GoogleNavigationApp(res), + new StreetviewApp(res) }; + } + return apps; + } + + public static void addMenuItems(Menu menu, Activity activity, + Resources res) { + for (NavigationApp app : getNavigationApps(res)) { + if (app.isInstalled(activity)) { + menu.add(0, app.getId(), 0, app.getName()); + } + } + } + + public static boolean onMenuItemSelected(final MenuItem item, + final cgGeo geo, Activity activity, Resources res, + cgCache cache, + final UUID searchId, cgWaypoint waypoint, final Geopoint destination) { + NavigationApp app = (NavigationApp) getAppFromMenuItem(item, apps); + if (app != null) { + try { + return app.invoke(geo, activity, res, cache, + searchId, waypoint, destination); + } catch (Exception e) { + Log.e(cgSettings.tag, "NavigationAppFactory.onMenuItemSelected: " + e.toString()); + } + } + return false; + } } |
