aboutsummaryrefslogtreecommitdiffstats
path: root/src/cgeo/geocaching/apps
diff options
context:
space:
mode:
authorSamuel Tardieu <sam@rfc1149.net>2011-09-16 14:36:28 +0200
committerSamuel Tardieu <sam@rfc1149.net>2011-09-16 14:36:28 +0200
commit579ef7a535489d4aa632db11667a3b01deb6cafd (patch)
tree55810021c02ac7d80d3a9702ef0b59e4af154b9c /src/cgeo/geocaching/apps
parent96ea21fd50334479c262da692038965d0e4d596a (diff)
downloadcgeo-579ef7a535489d4aa632db11667a3b01deb6cafd.zip
cgeo-579ef7a535489d4aa632db11667a3b01deb6cafd.tar.gz
cgeo-579ef7a535489d4aa632db11667a3b01deb6cafd.tar.bz2
Move sources into the main directory
This prepares the inclusion of tests into the same repository.
Diffstat (limited to 'src/cgeo/geocaching/apps')
-rw-r--r--src/cgeo/geocaching/apps/AbstractApp.java82
-rw-r--r--src/cgeo/geocaching/apps/AbstractAppFactory.java16
-rw-r--r--src/cgeo/geocaching/apps/AbstractLocusApp.java272
-rw-r--r--src/cgeo/geocaching/apps/App.java11
-rw-r--r--src/cgeo/geocaching/apps/LocusDataStorageProvider.java71
-rw-r--r--src/cgeo/geocaching/apps/cache/AbstractGeneralApp.java34
-rw-r--r--src/cgeo/geocaching/apps/cache/GccApp.java11
-rw-r--r--src/cgeo/geocaching/apps/cache/GeneralApp.java14
-rw-r--r--src/cgeo/geocaching/apps/cache/GeneralAppsFactory.java48
-rw-r--r--src/cgeo/geocaching/apps/cache/WhereYouGoApp.java17
-rw-r--r--src/cgeo/geocaching/apps/cache/navi/AbstractInternalMap.java15
-rw-r--r--src/cgeo/geocaching/apps/cache/navi/AbstractNavigationApp.java15
-rw-r--r--src/cgeo/geocaching/apps/cache/navi/GoogleMapsApp.java67
-rw-r--r--src/cgeo/geocaching/apps/cache/navi/GoogleNavigationApp.java102
-rw-r--r--src/cgeo/geocaching/apps/cache/navi/InternalMap.java47
-rw-r--r--src/cgeo/geocaching/apps/cache/navi/LocusApp.java57
-rw-r--r--src/cgeo/geocaching/apps/cache/navi/NavigationApp.java20
-rw-r--r--src/cgeo/geocaching/apps/cache/navi/NavigationAppFactory.java65
-rw-r--r--src/cgeo/geocaching/apps/cache/navi/OruxMapsApp.java59
-rw-r--r--src/cgeo/geocaching/apps/cache/navi/RMapsApp.java68
-rw-r--r--src/cgeo/geocaching/apps/cache/navi/RadarApp.java47
-rw-r--r--src/cgeo/geocaching/apps/cache/navi/StaticMapApp.java49
-rw-r--r--src/cgeo/geocaching/apps/cache/navi/StreetviewApp.java60
-rw-r--r--src/cgeo/geocaching/apps/cachelist/CacheListApp.java19
-rw-r--r--src/cgeo/geocaching/apps/cachelist/CacheListAppFactory.java79
-rw-r--r--src/cgeo/geocaching/apps/cachelist/InternalCacheListMap.java37
-rw-r--r--src/cgeo/geocaching/apps/cachelist/LocusCacheListApp.java36
27 files changed, 0 insertions, 1418 deletions
diff --git a/src/cgeo/geocaching/apps/AbstractApp.java b/src/cgeo/geocaching/apps/AbstractApp.java
deleted file mode 100644
index f917563..0000000
--- a/src/cgeo/geocaching/apps/AbstractApp.java
+++ /dev/null
@@ -1,82 +0,0 @@
-package cgeo.geocaching.apps;
-
-import cgeo.geocaching.cgSettings;
-import cgeo.geocaching.utils.CollectionUtils;
-
-import android.app.Activity;
-import android.content.Context;
-import android.content.Intent;
-import android.content.pm.PackageManager;
-import android.content.pm.ResolveInfo;
-
-import java.util.List;
-
-public abstract class AbstractApp implements App {
-
- protected String packageName;
-
- private String intent;
- private String name;
-
- protected AbstractApp(final String name, final String intent,
- final String packageName) {
- this.name = name;
- this.intent = intent;
- this.packageName = packageName;
- }
-
- protected AbstractApp(final String name, final String intent) {
- this(name, intent, null);
- }
-
- protected Intent getLaunchIntent(Context context) {
- if (packageName == null) {
- return null;
- }
- PackageManager packageManager = context.getPackageManager();
- try {
- // This can throw an exception where the exception type is only defined on API Level > 3
- // therefore surround with try-catch
- Intent intent = packageManager.getLaunchIntentForPackage(packageName);
- return intent;
- } catch (Exception e) {
- return null;
- }
- }
-
- public boolean isInstalled(final Context context) {
- if (getLaunchIntent(context) != null) {
- return true;
- }
- return isIntentAvailable(context, intent);
- }
-
- private static boolean isIntentAvailable(Context context, String action) {
- final Intent intent = new Intent(action);
-
- return isIntentAvailable(context, intent);
- }
-
- protected static boolean isIntentAvailable(Context context, Intent intent) {
- final PackageManager packageManager = context.getPackageManager();
- final List<ResolveInfo> list = packageManager.queryIntentActivities(
- intent, PackageManager.MATCH_DEFAULT_ONLY);
-
- return (CollectionUtils.isNotEmpty(list));
- }
-
- @Override
- public String getName() {
- return name;
- }
-
- @Override
- public int getId() {
- return getName().hashCode();
- }
-
- protected static cgSettings getSettings(Activity activity) {
- return new cgSettings(activity,
- activity.getSharedPreferences(cgSettings.preferences, Context.MODE_PRIVATE));
- }
-}
diff --git a/src/cgeo/geocaching/apps/AbstractAppFactory.java b/src/cgeo/geocaching/apps/AbstractAppFactory.java
deleted file mode 100644
index bb8b017..0000000
--- a/src/cgeo/geocaching/apps/AbstractAppFactory.java
+++ /dev/null
@@ -1,16 +0,0 @@
-package cgeo.geocaching.apps;
-
-import android.view.MenuItem;
-
-public abstract class AbstractAppFactory {
-
- protected static App getAppFromMenuItem(MenuItem item, final App[] availableApps) {
- int id = item.getItemId();
- for (App app : availableApps) {
- if (app.getId() == id) {
- return app;
- }
- }
- return null;
- }
-}
diff --git a/src/cgeo/geocaching/apps/AbstractLocusApp.java b/src/cgeo/geocaching/apps/AbstractLocusApp.java
deleted file mode 100644
index 3e79998..0000000
--- a/src/cgeo/geocaching/apps/AbstractLocusApp.java
+++ /dev/null
@@ -1,272 +0,0 @@
-package cgeo.geocaching.apps;
-
-import cgeo.geocaching.R;
-import cgeo.geocaching.cgCache;
-import cgeo.geocaching.cgSettings;
-import cgeo.geocaching.cgWaypoint;
-import cgeo.geocaching.enumerations.CacheSize;
-import cgeo.geocaching.enumerations.CacheType;
-import cgeo.geocaching.enumerations.WaypointType;
-
-import menion.android.locus.addon.publiclib.DisplayData;
-import menion.android.locus.addon.publiclib.LocusUtils;
-import menion.android.locus.addon.publiclib.geoData.Point;
-import menion.android.locus.addon.publiclib.geoData.PointGeocachingData;
-import menion.android.locus.addon.publiclib.geoData.PointGeocachingDataWaypoint;
-import menion.android.locus.addon.publiclib.geoData.PointsData;
-
-import android.app.Activity;
-import android.content.Context;
-import android.content.Intent;
-import android.content.res.Resources;
-import android.location.Location;
-
-import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * for the Locus API:
- *
- * @see http://forum.asamm.cz/viewtopic.php?f=29&t=767
- */
-public abstract class AbstractLocusApp extends AbstractApp {
- private static final String INTENT = Intent.ACTION_VIEW;
- private static final SimpleDateFormat ISO8601DATE = new SimpleDateFormat("yyyy-MM-dd'T'");
-
- protected AbstractLocusApp(final Resources res) {
- super(res.getString(R.string.caches_map_locus), INTENT);
- }
-
- @Override
- public boolean isInstalled(Context context) {
- return LocusUtils.isLocusAvailable(context);
- }
-
- /**
- * Display a list of caches / waypoints in Locus
- *
- * @param objectsToShow
- * which caches/waypoints to show
- * @param withCacheWaypoints
- * wether to give waypoints of caches to Locus or not
- * @param activity
- * @author koem
- */
- protected void showInLocus(List<? extends Object> objectsToShow, boolean withCacheWaypoints,
- Activity activity) {
- if (objectsToShow == null) {
- return;
- }
-
- int pc = 0; // counter for points
- PointsData pd = new PointsData("c:geo");
- for (Object o : objectsToShow) {
- // get icon and Point
- Point p = null;
- if (o instanceof cgCache) {
- p = getPoint((cgCache) o, withCacheWaypoints);
- } else if (o instanceof cgWaypoint) {
- p = getPoint((cgWaypoint) o);
- } else {
- continue; // no cache, no waypoint => ignore
- }
- if (p == null) {
- continue;
- }
-
- pd.addPoint(p);
- ++pc;
- }
-
- if (pc <= 1000) {
- DisplayData.sendData(activity, pd, false);
- } else {
- ArrayList<PointsData> data = new ArrayList<PointsData>();
- data.add(pd);
- DisplayData.sendDataCursor(activity, data,
- "content://" + LocusDataStorageProvider.class.getCanonicalName().toLowerCase(),
- false);
- }
- }
-
- /**
- * This method constructs a <code>Point</code> for displaying in Locus
- *
- * @param cache
- * @param withWaypoints
- * whether to give waypoints to Locus or not
- * @return null, when the <code>Point</code> could not be constructed
- * @author koem
- */
- private static Point getPoint(cgCache cache, boolean withWaypoints) {
- if (cache == null || cache.coords == null) {
- return null;
- }
-
- // create one simple point with location
- Location loc = new Location(cgSettings.tag);
- loc.setLatitude(cache.coords.getLatitude());
- loc.setLongitude(cache.coords.getLongitude());
-
- Point p = new Point(cache.name, loc);
- PointGeocachingData pg = new PointGeocachingData();
- p.setGeocachingData(pg);
-
- // set data in Locus' cache
- pg.cacheID = cache.geocode;
- pg.available = !cache.disabled;
- pg.archived = cache.archived;
- pg.premiumOnly = cache.members;
- pg.name = cache.name;
- pg.placedBy = cache.owner;
- if (cache.hidden != null) {
- pg.hidden = ISO8601DATE.format(cache.hidden.getTime());
- }
- int locusId = toLocusId(CacheType.FIND_BY_ID.get(cache.type));
- if (locusId != NO_LOCUS_ID) {
- pg.type = locusId;
- }
- locusId = toLocusId(cache.size);
- if (locusId != NO_LOCUS_ID) {
- pg.container = locusId;
- }
- if (cache.difficulty != null) {
- pg.difficulty = cache.difficulty;
- }
- if (cache.terrain != null) {
- pg.terrain = cache.terrain;
- }
- pg.found = cache.found;
-
- if (withWaypoints && cache.waypoints != null) {
- pg.waypoints = new ArrayList<PointGeocachingDataWaypoint>();
- for (cgWaypoint waypoint : cache.waypoints) {
- if (waypoint == null || waypoint.coords == null) {
- continue;
- }
- PointGeocachingDataWaypoint wp = new PointGeocachingDataWaypoint();
- wp.code = waypoint.geocode;
- wp.name = waypoint.name;
- String locusWpId = toLocusId(WaypointType.FIND_BY_ID.get(waypoint.type));
- if (locusWpId != null) {
- wp.type = locusWpId;
- }
- wp.lat = waypoint.coords.getLatitude();
- wp.lon = waypoint.coords.getLongitude();
- pg.waypoints.add(wp);
- }
- }
-
- // Other properties of caches, not used yet. When there are many caches to be displayed
- // in Locus, using these properties can lead to Exceptions in Locus.
- // Examination necessary when to display and when not. E. g.: > 200 caches: don't display
- // these properties.
-
- //pg.shortDescription = cache.shortdesc;
- //pg.longDescription = cache.description;
- //pg.encodedHints = cache.hint;
-
- return p;
- }
-
- /**
- * This method constructs a <code>Point</code> for displaying in Locus
- *
- * @param waypoint
- * @return null, when the <code>Point</code> could not be constructed
- * @author koem
- */
- private static Point getPoint(cgWaypoint waypoint) {
- if (waypoint == null || waypoint.coords == null) {
- return null;
- }
-
- // create one simple point with location
- Location loc = new Location(cgSettings.tag);
- loc.setLatitude(waypoint.coords.getLatitude());
- loc.setLongitude(waypoint.coords.getLongitude());
-
- Point p = new Point(waypoint.name, loc);
- p.setDescription("<a href=\"http://coord.info/" + waypoint.geocode + "\">"
- + waypoint.geocode + "</a>");
-
- return p;
- }
-
- private static final int NO_LOCUS_ID = -1;
-
- private static int toLocusId(final CacheType ct) {
- switch (ct) {
- case TRADITIONAL:
- return PointGeocachingData.CACHE_TYPE_TRADITIONAL;
- case MULTI:
- return PointGeocachingData.CACHE_TYPE_MULTI;
- case MYSTERY:
- return PointGeocachingData.CACHE_TYPE_MYSTERY;
- case LETTERBOX:
- return PointGeocachingData.CACHE_TYPE_LETTERBOX;
- case EVENT:
- return PointGeocachingData.CACHE_TYPE_EVENT;
- case MEGA_EVENT:
- return PointGeocachingData.CACHE_TYPE_MEGA_EVENT;
- case EARTH:
- return PointGeocachingData.CACHE_TYPE_EARTH;
- case CITO:
- return PointGeocachingData.CACHE_TYPE_CACHE_IN_TRASH_OUT;
- case WEBCAM:
- return PointGeocachingData.CACHE_TYPE_WEBCAM;
- case VIRTUAL:
- return PointGeocachingData.CACHE_TYPE_VIRTUAL;
- case WHERIGO:
- return PointGeocachingData.CACHE_TYPE_WHERIGO;
- case PROJECT_APE:
- return PointGeocachingData.CACHE_TYPE_PROJECT_APE;
- case GPS_EXHIBIT:
- return PointGeocachingData.CACHE_TYPE_GPS_ADVENTURE;
- default:
- return NO_LOCUS_ID;
- }
- }
-
- private static int toLocusId(final CacheSize cs) {
- switch (cs) {
- case MICRO:
- return PointGeocachingData.CACHE_SIZE_MICRO;
- case SMALL:
- return PointGeocachingData.CACHE_SIZE_SMALL;
- case REGULAR:
- return PointGeocachingData.CACHE_SIZE_REGULAR;
- case LARGE:
- return PointGeocachingData.CACHE_SIZE_LARGE;
- case NOT_CHOSEN:
- return PointGeocachingData.CACHE_SIZE_NOT_CHOSEN;
- case OTHER:
- return PointGeocachingData.CACHE_SIZE_OTHER;
- default:
- return NO_LOCUS_ID;
- }
- }
-
- private static String toLocusId(final WaypointType wt) {
- switch (wt) {
- case FLAG:
- return PointGeocachingData.CACHE_WAYPOINT_TYPE_FINAL;
- case OWN:
- return PointGeocachingData.CACHE_WAYPOINT_TYPE_STAGES;
- case PKG:
- return PointGeocachingData.CACHE_WAYPOINT_TYPE_PARKING;
- case PUZZLE:
- return PointGeocachingData.CACHE_WAYPOINT_TYPE_QUESTION;
- case STAGE:
- return PointGeocachingData.CACHE_WAYPOINT_TYPE_STAGES;
- case TRAILHEAD:
- return PointGeocachingData.CACHE_WAYPOINT_TYPE_TRAILHEAD;
- case WAYPOINT:
- return PointGeocachingData.CACHE_WAYPOINT_TYPE_STAGES;
- default:
- return null;
- }
- }
-
-}
diff --git a/src/cgeo/geocaching/apps/App.java b/src/cgeo/geocaching/apps/App.java
deleted file mode 100644
index 8241737..0000000
--- a/src/cgeo/geocaching/apps/App.java
+++ /dev/null
@@ -1,11 +0,0 @@
-package cgeo.geocaching.apps;
-
-import android.content.Context;
-
-public interface App {
- public boolean isInstalled(final Context context);
-
- public String getName();
-
- int getId();
-}
diff --git a/src/cgeo/geocaching/apps/LocusDataStorageProvider.java b/src/cgeo/geocaching/apps/LocusDataStorageProvider.java
deleted file mode 100644
index 69a5e5b..0000000
--- a/src/cgeo/geocaching/apps/LocusDataStorageProvider.java
+++ /dev/null
@@ -1,71 +0,0 @@
-package cgeo.geocaching.apps;
-
-import menion.android.locus.addon.publiclib.geoData.PointsData;
-import menion.android.locus.addon.publiclib.utils.DataCursor;
-import menion.android.locus.addon.publiclib.utils.DataStorage;
-
-import android.content.ContentProvider;
-import android.content.ContentValues;
-import android.database.Cursor;
-import android.net.Uri;
-import android.os.Parcel;
-
-import java.util.ArrayList;
-
-/**
- * code provided by menion - developer of Locus
- */
-public class LocusDataStorageProvider extends ContentProvider {
-
- @Override
- public Cursor query(Uri aUri, String[] aProjection, String aSelection,
- String[] aSelectionArgs, String aSortOrder) {
-
- DataCursor cursor = new DataCursor(new String[] { "data" });
-
- ArrayList<PointsData> data = DataStorage.getData();
- if (data == null || data.size() == 0) {
- return cursor;
- }
-
- for (int i = 0; i < data.size(); i++) {
- // get byte array
- Parcel par = Parcel.obtain();
- data.get(i).writeToParcel(par, 0);
- byte[] byteData = par.marshall();
- // add to row
- cursor.addRow(new Object[] { byteData });
- }
- // data filled to cursor, clear reference to prevent some memory issue
- DataStorage.clearData();
- // now finally return filled cursor
- return cursor;
- }
-
- @Override
- public int delete(Uri uri, String selection, String[] selectionArgs) {
- return 0;
- }
-
- @Override
- public String getType(Uri uri) {
- return null;
- }
-
- @Override
- public Uri insert(Uri uri, ContentValues values) {
- return null;
- }
-
- @Override
- public boolean onCreate() {
- return false;
- }
-
- @Override
- public int update(Uri uri, ContentValues values, String selection,
- String[] selectionArgs) {
- return 0;
- }
-
-}
diff --git a/src/cgeo/geocaching/apps/cache/AbstractGeneralApp.java b/src/cgeo/geocaching/apps/cache/AbstractGeneralApp.java
deleted file mode 100644
index 8d0d5ae..0000000
--- a/src/cgeo/geocaching/apps/cache/AbstractGeneralApp.java
+++ /dev/null
@@ -1,34 +0,0 @@
-package cgeo.geocaching.apps.cache;
-
-import cgeo.geocaching.cgCache;
-import cgeo.geocaching.apps.AbstractApp;
-
-import android.app.Activity;
-import android.content.Intent;
-
-abstract class AbstractGeneralApp extends AbstractApp implements GeneralApp {
-
- protected AbstractGeneralApp(String name, String packageName) {
- super(name, null);
- this.packageName = packageName;
- }
-
- @Override
- public boolean isEnabled(cgCache cache) {
- return true;
- }
-
- @Override
- public boolean invoke(Activity activity, cgCache cache) {
- if (packageName == null) {
- return false;
- }
- Intent intent = getLaunchIntent(activity);
- if (intent != null) {
- intent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
- activity.startActivity(intent);
- return true;
- }
- return false;
- }
-}
diff --git a/src/cgeo/geocaching/apps/cache/GccApp.java b/src/cgeo/geocaching/apps/cache/GccApp.java
deleted file mode 100644
index 06ce6c2..0000000
--- a/src/cgeo/geocaching/apps/cache/GccApp.java
+++ /dev/null
@@ -1,11 +0,0 @@
-package cgeo.geocaching.apps.cache;
-
-import cgeo.geocaching.R;
-
-import android.content.res.Resources;
-
-class GccApp extends AbstractGeneralApp implements GeneralApp {
- GccApp(final Resources res) {
- super(res.getString(R.string.cache_menu_gcc), "eisbehr.gcc");
- }
-}
diff --git a/src/cgeo/geocaching/apps/cache/GeneralApp.java b/src/cgeo/geocaching/apps/cache/GeneralApp.java
deleted file mode 100644
index 805d64c..0000000
--- a/src/cgeo/geocaching/apps/cache/GeneralApp.java
+++ /dev/null
@@ -1,14 +0,0 @@
-package cgeo.geocaching.apps.cache;
-
-import cgeo.geocaching.cgCache;
-import cgeo.geocaching.apps.App;
-
-import android.app.Activity;
-
-interface GeneralApp extends App {
-
- boolean isEnabled(final cgCache cache);
-
- public boolean invoke(Activity activity, cgCache cache);
-
-}
diff --git a/src/cgeo/geocaching/apps/cache/GeneralAppsFactory.java b/src/cgeo/geocaching/apps/cache/GeneralAppsFactory.java
deleted file mode 100644
index eb581ca..0000000
--- a/src/cgeo/geocaching/apps/cache/GeneralAppsFactory.java
+++ /dev/null
@@ -1,48 +0,0 @@
-package cgeo.geocaching.apps.cache;
-
-import cgeo.geocaching.cgCache;
-import cgeo.geocaching.cgSettings;
-import cgeo.geocaching.apps.AbstractAppFactory;
-
-import org.apache.commons.lang3.ArrayUtils;
-
-import android.app.Activity;
-import android.content.res.Resources;
-import android.util.Log;
-import android.view.Menu;
-import android.view.MenuItem;
-
-public final class GeneralAppsFactory extends AbstractAppFactory {
- private static GeneralApp[] apps = new GeneralApp[] {};
-
- private static GeneralApp[] getGeneralApps(Resources res) {
- if (ArrayUtils.isEmpty(apps)) {
- apps = new GeneralApp[] { new GccApp(res),
- new WhereYouGoApp(res) };
- }
- return apps;
- }
-
- public static void addMenuItems(Menu menu, Activity activity,
- Resources res, cgCache cache) {
- for (GeneralApp app : getGeneralApps(res)) {
- if (app.isInstalled(activity) && app.isEnabled(cache)) {
- menu.add(0, app.getId(), 0, app.getName());
- }
- }
- }
-
- public static boolean onMenuItemSelected(final MenuItem item,
- Activity activity, cgCache cache) {
- GeneralApp app = (GeneralApp) getAppFromMenuItem(item, apps);
- if (app != null) {
- try {
- return app.invoke(activity, cache);
- } catch (Exception e) {
- Log.e(cgSettings.tag, "GeneralAppsFactory.onMenuItemSelected: " + e.toString());
- }
- }
- return false;
- }
-
-}
diff --git a/src/cgeo/geocaching/apps/cache/WhereYouGoApp.java b/src/cgeo/geocaching/apps/cache/WhereYouGoApp.java
deleted file mode 100644
index b12a6d1..0000000
--- a/src/cgeo/geocaching/apps/cache/WhereYouGoApp.java
+++ /dev/null
@@ -1,17 +0,0 @@
-package cgeo.geocaching.apps.cache;
-
-import cgeo.geocaching.R;
-import cgeo.geocaching.cgCache;
-
-import android.content.res.Resources;
-
-class WhereYouGoApp extends AbstractGeneralApp implements GeneralApp {
- WhereYouGoApp(Resources res) {
- super(res.getString(R.string.cache_menu_whereyougo), "menion.android.whereyougo");
- }
-
- @Override
- public boolean isEnabled(cgCache cache) {
- return cache != null && cache.type != null && cache.type.equalsIgnoreCase("wherigo");
- }
-}
diff --git a/src/cgeo/geocaching/apps/cache/navi/AbstractInternalMap.java b/src/cgeo/geocaching/apps/cache/navi/AbstractInternalMap.java
deleted file mode 100644
index a1ffc89..0000000
--- a/src/cgeo/geocaching/apps/cache/navi/AbstractInternalMap.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package cgeo.geocaching.apps.cache.navi;
-
-import android.content.Context;
-
-abstract class AbstractInternalMap extends AbstractNavigationApp {
-
- protected AbstractInternalMap(String name, String intent) {
- super(name, intent);
- }
-
- @Override
- public boolean isInstalled(Context context) {
- return true;
- }
-}
diff --git a/src/cgeo/geocaching/apps/cache/navi/AbstractNavigationApp.java b/src/cgeo/geocaching/apps/cache/navi/AbstractNavigationApp.java
deleted file mode 100644
index 3b10f1a..0000000
--- a/src/cgeo/geocaching/apps/cache/navi/AbstractNavigationApp.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package cgeo.geocaching.apps.cache.navi;
-
-import cgeo.geocaching.apps.AbstractApp;
-
-abstract class AbstractNavigationApp extends AbstractApp implements NavigationApp {
-
- protected AbstractNavigationApp(String name, String intent, String packageName) {
- super(name, intent, packageName);
- }
-
- protected AbstractNavigationApp(String name, String intent) {
- super(name, intent);
- }
-
-}
diff --git a/src/cgeo/geocaching/apps/cache/navi/GoogleMapsApp.java b/src/cgeo/geocaching/apps/cache/navi/GoogleMapsApp.java
deleted file mode 100644
index b60a635..0000000
--- a/src/cgeo/geocaching/apps/cache/navi/GoogleMapsApp.java
+++ /dev/null
@@ -1,67 +0,0 @@
-package cgeo.geocaching.apps.cache.navi;
-
-import cgeo.geocaching.R;
-import cgeo.geocaching.cgCache;
-import cgeo.geocaching.cgGeo;
-import cgeo.geocaching.cgSettings;
-import cgeo.geocaching.cgWaypoint;
-import cgeo.geocaching.activity.ActivityMixin;
-import cgeo.geocaching.geopoint.Geopoint;
-
-import android.app.Activity;
-import android.content.Context;
-import android.content.Intent;
-import android.content.res.Resources;
-import android.net.Uri;
-import android.util.Log;
-
-import java.util.UUID;
-
-class GoogleMapsApp extends AbstractNavigationApp implements NavigationApp {
-
- GoogleMapsApp(final Resources res) {
- super(res.getString(R.string.cache_menu_map_ext), null);
- }
-
- @Override
- public boolean isInstalled(Context context) {
- return true;
- }
-
- public boolean invoke(cgGeo geo, Activity activity, Resources res,
- cgCache cache,
- final UUID searchId, cgWaypoint waypoint, final Geopoint coords) {
- if (cache == null && waypoint == null && coords == null) {
- return false;
- }
-
- try {
- if (cache != null && cache.coords != null) {
- startActivity(activity, cache.coords);
- } else if (waypoint != null && waypoint.coords != null) {
- startActivity(activity, waypoint.coords);
- } else if (coords != null) {
- startActivity(activity, coords);
- }
-
- return true;
- } catch (Exception e) {
- // nothing
- }
-
- Log.i(cgSettings.tag, "cgBase.runExternalMap: No maps application available.");
-
- if (res != null) {
- ActivityMixin.showToast(activity, res.getString(R.string.err_application_no));
- }
-
- return false;
- }
-
- private static void startActivity(Activity activity, final Geopoint coords) {
- activity.startActivity(new Intent(Intent.ACTION_VIEW,
- Uri.parse("geo:" + coords.getLatitude() + "," + coords.getLongitude())));
- // INFO: q parameter works with Google Maps, but breaks cooperation with all other apps
- }
-
-}
diff --git a/src/cgeo/geocaching/apps/cache/navi/GoogleNavigationApp.java b/src/cgeo/geocaching/apps/cache/navi/GoogleNavigationApp.java
deleted file mode 100644
index 2cd2b22..0000000
--- a/src/cgeo/geocaching/apps/cache/navi/GoogleNavigationApp.java
+++ /dev/null
@@ -1,102 +0,0 @@
-package cgeo.geocaching.apps.cache.navi;
-
-import cgeo.geocaching.R;
-import cgeo.geocaching.cgCache;
-import cgeo.geocaching.cgGeo;
-import cgeo.geocaching.cgSettings;
-import cgeo.geocaching.cgWaypoint;
-import cgeo.geocaching.activity.ActivityMixin;
-import cgeo.geocaching.geopoint.Geopoint;
-
-import android.app.Activity;
-import android.content.Context;
-import android.content.Intent;
-import android.content.res.Resources;
-import android.net.Uri;
-import android.util.Log;
-
-import java.util.UUID;
-
-class GoogleNavigationApp extends AbstractNavigationApp implements
- NavigationApp {
-
- GoogleNavigationApp(final Resources res) {
- super(res.getString(R.string.cache_menu_tbt), null);
- }
-
- @Override
- public boolean isInstalled(Context context) {
- return true;
- }
-
- @Override
- public boolean invoke(final cgGeo geo, final Activity activity, final Resources res,
- final cgCache cache,
- final UUID searchId, final cgWaypoint waypoint, final Geopoint coords) {
- if (activity == null) {
- return false;
- }
-
- boolean navigationResult = false;
- if (coords != null) {
- navigationResult = navigateToCoordinates(geo, activity, coords);
- }
- else if (waypoint != null) {
- navigationResult = navigateToCoordinates(geo, activity, waypoint.coords);
- }
- else if (cache != null) {
- navigationResult = navigateToCoordinates(geo, activity, cache.coords);
- }
-
- if (!navigationResult) {
- if (res != null) {
- ActivityMixin.showToast(activity, res.getString(R.string.err_navigation_no));
- }
- return false;
- }
-
- return true;
- }
-
- private static boolean navigateToCoordinates(cgGeo geo, Activity activity, final Geopoint coords) {
- final Geopoint coordsNow = geo == null ? null : geo.coordsNow;
-
- cgSettings settings = getSettings(activity);
-
- // Google Navigation
- if (settings.useGNavigation == 1) {
- try {
- activity.startActivity(new Intent(Intent.ACTION_VIEW, Uri
- .parse("google.navigation:ll=" + coords.getLatitude() + ","
- + coords.getLongitude())));
-
- return true;
- } catch (Exception e) {
- // nothing
- }
- }
-
- // Google Maps Directions
- try {
- if (coordsNow != null) {
- activity.startActivity(new Intent(Intent.ACTION_VIEW, Uri
- .parse("http://maps.google.com/maps?f=d&saddr="
- + coordsNow.getLatitude() + "," + coordsNow.getLongitude() + "&daddr="
- + coords.getLatitude() + "," + coords.getLongitude())));
- } else {
- activity.startActivity(new Intent(Intent.ACTION_VIEW, Uri
- .parse("http://maps.google.com/maps?f=d&daddr="
- + coords.getLatitude() + "," + coords.getLongitude())));
- }
-
- return true;
- } catch (Exception e) {
- // nothing
- }
-
- Log.i(cgSettings.tag,
- "cgBase.runNavigation: No navigation application available.");
- return false;
- }
-
-} \ No newline at end of file
diff --git a/src/cgeo/geocaching/apps/cache/navi/InternalMap.java b/src/cgeo/geocaching/apps/cache/navi/InternalMap.java
deleted file mode 100644
index 0aa49db..0000000
--- a/src/cgeo/geocaching/apps/cache/navi/InternalMap.java
+++ /dev/null
@@ -1,47 +0,0 @@
-package cgeo.geocaching.apps.cache.navi;
-
-import cgeo.geocaching.R;
-import cgeo.geocaching.cgCache;
-import cgeo.geocaching.cgGeo;
-import cgeo.geocaching.cgSettings;
-import cgeo.geocaching.cgWaypoint;
-import cgeo.geocaching.geopoint.Geopoint;
-
-import android.app.Activity;
-import android.content.Intent;
-import android.content.res.Resources;
-
-import java.util.UUID;
-
-class InternalMap extends AbstractInternalMap implements
- NavigationApp {
-
- InternalMap(Resources res) {
- super(res.getString(R.string.cache_menu_map), null);
- }
-
- @Override
- public boolean invoke(cgGeo geo, Activity activity, Resources res,
- cgCache cache,
- final UUID searchId, cgWaypoint waypoint, final Geopoint coords) {
- cgSettings settings = getSettings(activity);
- Intent mapIntent = new Intent(activity, settings.getMapFactory().getMapClass());
- if (cache != null) {
- mapIntent.putExtra("detail", false);
- mapIntent.putExtra("geocode", cache.geocode);
- }
- if (searchId != null) {
- mapIntent.putExtra("detail", true);
- mapIntent.putExtra("searchid", searchId.toString());
- }
- if (waypoint != null) {
- mapIntent.putExtra("latitude", waypoint.coords.getLatitude());
- mapIntent.putExtra("longitude", waypoint.coords.getLongitude());
- mapIntent.putExtra("wpttype", waypoint.type);
- }
-
- activity.startActivity(mapIntent);
- return true;
- }
-
-}
diff --git a/src/cgeo/geocaching/apps/cache/navi/LocusApp.java b/src/cgeo/geocaching/apps/cache/navi/LocusApp.java
deleted file mode 100644
index eea80da..0000000
--- a/src/cgeo/geocaching/apps/cache/navi/LocusApp.java
+++ /dev/null
@@ -1,57 +0,0 @@
-package cgeo.geocaching.apps.cache.navi;
-
-import cgeo.geocaching.cgCache;
-import cgeo.geocaching.cgGeo;
-import cgeo.geocaching.cgWaypoint;
-import cgeo.geocaching.apps.AbstractLocusApp;
-import cgeo.geocaching.geopoint.Geopoint;
-
-import android.app.Activity;
-import android.content.res.Resources;
-
-import java.util.ArrayList;
-import java.util.UUID;
-
-class LocusApp extends AbstractLocusApp implements NavigationApp {
-
- LocusApp(Resources res) {
- super(res);
- }
-
- /**
- * Show a single cache with waypoints or a single waypoint in Locus.
- * This method constructs a list of cache and waypoints only.
- *
- * @see AbstractLocusApp#showInLocus
- * @author koem
- */
- @Override
- public boolean invoke(cgGeo geo, Activity activity, Resources res, cgCache cache,
- final UUID searchId, cgWaypoint waypoint, final Geopoint coords) {
-
- if (cache == null && waypoint == null && coords == null) {
- return false;
- }
-
- if (isInstalled(activity)) { // TODO: is this if-statement really necessary?
- final ArrayList<Object> points = new ArrayList<Object>();
-
- // add cache if present
- if (cache != null && cache.coords != null) {
- points.add(cache);
- }
-
- // add waypoint if present
- if (waypoint != null && waypoint.coords != null) {
- points.add(waypoint);
- }
-
- this.showInLocus(points, true, activity);
-
- return true;
- }
-
- return false;
- }
-
-}
diff --git a/src/cgeo/geocaching/apps/cache/navi/NavigationApp.java b/src/cgeo/geocaching/apps/cache/navi/NavigationApp.java
deleted file mode 100644
index ef0a578..0000000
--- a/src/cgeo/geocaching/apps/cache/navi/NavigationApp.java
+++ /dev/null
@@ -1,20 +0,0 @@
-package cgeo.geocaching.apps.cache.navi;
-
-import cgeo.geocaching.cgCache;
-import cgeo.geocaching.cgGeo;
-import cgeo.geocaching.cgWaypoint;
-import cgeo.geocaching.apps.App;
-import cgeo.geocaching.geopoint.Geopoint;
-
-import android.app.Activity;
-import android.content.res.Resources;
-
-import java.util.UUID;
-
-interface NavigationApp extends App {
- public boolean invoke(final cgGeo geo, final Activity activity,
- final Resources res,
- final cgCache cache,
- final UUID searchId, final cgWaypoint waypoint,
- final Geopoint coords);
-}
diff --git a/src/cgeo/geocaching/apps/cache/navi/NavigationAppFactory.java b/src/cgeo/geocaching/apps/cache/navi/NavigationAppFactory.java
deleted file mode 100644
index 1a46200..0000000
--- a/src/cgeo/geocaching/apps/cache/navi/NavigationAppFactory.java
+++ /dev/null
@@ -1,65 +0,0 @@
-package cgeo.geocaching.apps.cache.navi;
-
-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;
-
-import android.app.Activity;
-import android.content.res.Resources;
-import android.util.Log;
-import android.view.Menu;
-import android.view.MenuItem;
-
-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),
- new OruxMapsApp(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;
- }
-
-}
diff --git a/src/cgeo/geocaching/apps/cache/navi/OruxMapsApp.java b/src/cgeo/geocaching/apps/cache/navi/OruxMapsApp.java
deleted file mode 100644
index 71430ae..0000000
--- a/src/cgeo/geocaching/apps/cache/navi/OruxMapsApp.java
+++ /dev/null
@@ -1,59 +0,0 @@
-package cgeo.geocaching.apps.cache.navi;
-
-import cgeo.geocaching.R;
-import cgeo.geocaching.cgCache;
-import cgeo.geocaching.cgGeo;
-import cgeo.geocaching.cgWaypoint;
-import cgeo.geocaching.geopoint.Geopoint;
-
-import android.app.Activity;
-import android.content.Intent;
-import android.content.res.Resources;
-
-import java.util.UUID;
-
-class OruxMapsApp extends AbstractNavigationApp implements NavigationApp {
-
- private static final String INTENT = "com.oruxmaps.VIEW_MAP_ONLINE";
-
- OruxMapsApp(final Resources res) {
- super(res.getString(R.string.cache_menu_oruxmaps), INTENT);
- }
-
- @Override
- public boolean invoke(cgGeo geo, Activity activity, Resources res,
- cgCache cache,
- final UUID searchId, cgWaypoint waypoint, final Geopoint coords) {
- if (cache == null && waypoint == null && coords == null) {
- return false;
- }
-
- try {
- if (isInstalled(activity)) {
- Geopoint usedCoords = getCoords(cache, waypoint, coords);
-
- final Intent intent = new Intent(INTENT);
- intent.putExtra("latitude", usedCoords.getLatitude());//latitude, wgs84 datum
- intent.putExtra("longitude", usedCoords.getLongitude());//longitude, wgs84 datum
-
- activity.startActivity(intent);
-
- return true;
- }
- } catch (Exception e) {
- // nothing
- }
-
- return false;
- }
-
- private static Geopoint getCoords(cgCache cache, cgWaypoint waypoint, Geopoint coords) {
- if (cache != null) {
- return cache.coords;
- }
- else if (waypoint != null) {
- return waypoint.coords;
- }
- return coords;
- }
-}
diff --git a/src/cgeo/geocaching/apps/cache/navi/RMapsApp.java b/src/cgeo/geocaching/apps/cache/navi/RMapsApp.java
deleted file mode 100644
index 2d27493..0000000
--- a/src/cgeo/geocaching/apps/cache/navi/RMapsApp.java
+++ /dev/null
@@ -1,68 +0,0 @@
-package cgeo.geocaching.apps.cache.navi;
-
-import cgeo.geocaching.R;
-import cgeo.geocaching.cgCache;
-import cgeo.geocaching.cgGeo;
-import cgeo.geocaching.cgWaypoint;
-import cgeo.geocaching.geopoint.Geopoint;
-
-import android.app.Activity;
-import android.content.Intent;
-import android.content.res.Resources;
-
-import java.util.ArrayList;
-import java.util.Locale;
-import java.util.UUID;
-
-class RMapsApp extends AbstractNavigationApp implements NavigationApp {
-
- private static final String INTENT = "com.robert.maps.action.SHOW_POINTS";
-
- RMapsApp(final Resources res) {
- super(res.getString(R.string.cache_menu_rmaps), INTENT);
- }
-
- @Override
- public boolean invoke(cgGeo geo, Activity activity, Resources res,
- cgCache cache,
- final UUID searchId, cgWaypoint waypoint, final Geopoint coords) {
- if (cache == null && waypoint == null && coords == null) {
- return false;
- }
-
- try {
- if (isInstalled(activity)) {
- final ArrayList<String> locations = new ArrayList<String>();
- if (cache != null && cache.coords != null) {
- locations.add(String.format((Locale) null, "%.6f",
- cache.coords.getLatitude())
- + ","
- + String.format((Locale) null, "%.6f",
- cache.coords.getLongitude())
- + ";"
- + cache.geocode
- + ";" + cache.name);
- } else if (waypoint != null && waypoint.coords != null) {
- locations.add(String.format((Locale) null, "%.6f",
- waypoint.coords.getLatitude())
- + ","
- + String.format((Locale) null, "%.6f",
- waypoint.coords.getLongitude())
- + ";"
- + waypoint.lookup
- + ";" + waypoint.name);
- }
-
- final Intent intent = new Intent(INTENT);
- intent.putStringArrayListExtra("locations", locations);
- activity.startActivity(intent);
-
- return true;
- }
- } catch (Exception e) {
- // nothing
- }
-
- return false;
- }
-}
diff --git a/src/cgeo/geocaching/apps/cache/navi/RadarApp.java b/src/cgeo/geocaching/apps/cache/navi/RadarApp.java
deleted file mode 100644
index 87e6368..0000000
--- a/src/cgeo/geocaching/apps/cache/navi/RadarApp.java
+++ /dev/null
@@ -1,47 +0,0 @@
-package cgeo.geocaching.apps.cache.navi;
-
-import cgeo.geocaching.R;
-import cgeo.geocaching.cgCache;
-import cgeo.geocaching.cgGeo;
-import cgeo.geocaching.cgWaypoint;
-import cgeo.geocaching.geopoint.Geopoint;
-
-import android.app.Activity;
-import android.content.Intent;
-import android.content.res.Resources;
-
-import java.util.UUID;
-
-class RadarApp extends AbstractNavigationApp implements NavigationApp {
-
- private static final String INTENT = "com.google.android.radar.SHOW_RADAR";
- private static final String PACKAGE_NAME = "com.eclipsim.gpsstatus2";
-
- RadarApp(final Resources res) {
- super(res.getString(R.string.cache_menu_radar), INTENT, PACKAGE_NAME);
- }
-
- private static boolean navigateTo(Activity activity, final Geopoint coords) {
- if (coords == null) {
- return false;
- }
- Intent radarIntent = new Intent(INTENT);
- radarIntent.putExtra("latitude", (float) coords.getLatitude());
- radarIntent.putExtra("longitude", (float) coords.getLongitude());
- activity.startActivity(radarIntent);
- return true;
- }
-
- @Override
- public boolean invoke(cgGeo geo, Activity activity, Resources res,
- cgCache cache,
- final UUID searchId, cgWaypoint waypoint, final Geopoint coords) {
- if (cache != null) {
- return navigateTo(activity, cache.coords);
- }
- if (waypoint != null) {
- return navigateTo(activity, waypoint.coords);
- }
- return navigateTo(activity, coords);
- }
-}
diff --git a/src/cgeo/geocaching/apps/cache/navi/StaticMapApp.java b/src/cgeo/geocaching/apps/cache/navi/StaticMapApp.java
deleted file mode 100644
index 0967925..0000000
--- a/src/cgeo/geocaching/apps/cache/navi/StaticMapApp.java
+++ /dev/null
@@ -1,49 +0,0 @@
-package cgeo.geocaching.apps.cache.navi;
-
-import cgeo.geocaching.R;
-import cgeo.geocaching.cgCache;
-import cgeo.geocaching.cgGeo;
-import cgeo.geocaching.cgWaypoint;
-import cgeo.geocaching.cgeosmaps;
-import cgeo.geocaching.activity.ActivityMixin;
-import cgeo.geocaching.geopoint.Geopoint;
-
-import android.app.Activity;
-import android.content.Context;
-import android.content.Intent;
-import android.content.res.Resources;
-
-import java.util.UUID;
-
-class StaticMapApp extends AbstractNavigationApp implements
- NavigationApp {
-
- StaticMapApp(final Resources res) {
- super(res.getString(R.string.cache_menu_map_static), null);
- }
-
- @Override
- public boolean isInstalled(Context context) {
- return true;
- }
-
- @Override
- public boolean invoke(cgGeo geo, Activity activity, Resources res,
- cgCache cache,
- final UUID searchId, cgWaypoint waypoint, final Geopoint coords) {
-
- if (cache == null || cache.reason == 0) {
- ActivityMixin.showToast(activity, res.getString(R.string.err_detail_no_map_static));
- return true;
- }
-
- if (cache.geocode != null) {
- Intent smapsIntent = new Intent(activity, cgeosmaps.class);
- smapsIntent.putExtra("geocode", cache.geocode.toUpperCase());
- activity.startActivity(smapsIntent);
- return true;
- }
- return false;
- }
-
-}
diff --git a/src/cgeo/geocaching/apps/cache/navi/StreetviewApp.java b/src/cgeo/geocaching/apps/cache/navi/StreetviewApp.java
deleted file mode 100644
index 8dae3c9..0000000
--- a/src/cgeo/geocaching/apps/cache/navi/StreetviewApp.java
+++ /dev/null
@@ -1,60 +0,0 @@
-package cgeo.geocaching.apps.cache.navi;
-
-import cgeo.geocaching.R;
-import cgeo.geocaching.cgCache;
-import cgeo.geocaching.cgGeo;
-import cgeo.geocaching.cgWaypoint;
-import cgeo.geocaching.activity.ActivityMixin;
-import cgeo.geocaching.geopoint.Geopoint;
-
-import android.app.Activity;
-import android.content.ActivityNotFoundException;
-import android.content.Context;
-import android.content.Intent;
-import android.content.res.Resources;
-import android.net.Uri;
-
-import java.util.UUID;
-
-class StreetviewApp extends AbstractNavigationApp implements NavigationApp {
-
- StreetviewApp(final Resources res) {
- super(res.getString(R.string.cache_menu_streetview), null);
- }
-
- @Override
- public boolean isInstalled(Context context) {
- return true;
- }
-
- public boolean invoke(cgGeo geo, Activity activity, Resources res,
- cgCache cache,
- final UUID searchId, cgWaypoint waypoint, final Geopoint coords) {
- if (cache == null && waypoint == null && coords == null) {
- return false;
- }
-
- try {
- if (cache != null && cache.coords != null) {
- startActivity(activity, cache.coords);
- } else if (waypoint != null && waypoint.coords != null) {
- startActivity(activity, waypoint.coords);
- } else if (coords != null) {
- startActivity(activity, coords);
- }
-
- return true;
- } catch (ActivityNotFoundException e) {
- if (res != null) {
- ActivityMixin.showToast(activity, res.getString(R.string.err_application_no));
- }
- }
-
- return false;
- }
-
- private static void startActivity(Activity activity, final Geopoint coords) {
- activity.startActivity(new Intent(Intent.ACTION_VIEW,
- Uri.parse("google.streetview:cbll=" + coords.getLatitude() + "," + coords.getLongitude())));
- }
-}
diff --git a/src/cgeo/geocaching/apps/cachelist/CacheListApp.java b/src/cgeo/geocaching/apps/cachelist/CacheListApp.java
deleted file mode 100644
index c4d51d2..0000000
--- a/src/cgeo/geocaching/apps/cachelist/CacheListApp.java
+++ /dev/null
@@ -1,19 +0,0 @@
-package cgeo.geocaching.apps.cachelist;
-
-import cgeo.geocaching.cgCache;
-import cgeo.geocaching.cgGeo;
-import cgeo.geocaching.apps.App;
-
-import android.app.Activity;
-import android.content.res.Resources;
-
-import java.util.List;
-import java.util.UUID;
-
-interface CacheListApp extends App {
-
- boolean invoke(final cgGeo geo, final List<cgCache> caches,
- final Activity activity, final Resources res,
- final UUID searchId);
-
-}
diff --git a/src/cgeo/geocaching/apps/cachelist/CacheListAppFactory.java b/src/cgeo/geocaching/apps/cachelist/CacheListAppFactory.java
deleted file mode 100644
index 5359719..0000000
--- a/src/cgeo/geocaching/apps/cachelist/CacheListAppFactory.java
+++ /dev/null
@@ -1,79 +0,0 @@
-package cgeo.geocaching.apps.cachelist;
-
-import cgeo.geocaching.R;
-import cgeo.geocaching.cgCache;
-import cgeo.geocaching.cgGeo;
-import cgeo.geocaching.cgSettings;
-import cgeo.geocaching.apps.AbstractAppFactory;
-
-import org.apache.commons.lang3.ArrayUtils;
-
-import android.app.Activity;
-import android.content.res.Resources;
-import android.util.Log;
-import android.view.Menu;
-import android.view.MenuItem;
-import android.view.SubMenu;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.UUID;
-
-public final class CacheListAppFactory extends AbstractAppFactory {
- private static CacheListApp[] apps = new CacheListApp[] {};
-
- private static CacheListApp[] getMultiPointNavigationApps(
- Resources res) {
- if (ArrayUtils.isEmpty(apps)) {
- apps = new CacheListApp[] {
- new InternalCacheListMap(res),
- new LocusCacheListApp(res) };
- }
- return apps;
- }
-
- /**
- * @param menu
- * @param activity
- * @param res
- * @return the added menu item (also for a sub menu, then the menu item in the parent menu is returned)
- */
- public static MenuItem addMenuItems(Menu menu,
- Activity activity, Resources res) {
- List<CacheListApp> activeApps = new ArrayList<CacheListApp>();
- for (CacheListApp app : getMultiPointNavigationApps(res)) {
- if (app.isInstalled(activity)) {
- activeApps.add(app);
- }
- }
- // use a new sub menu, if more than one app is available
- if (activeApps.size() > 1) {
- SubMenu subMenu = menu.addSubMenu(0, 101, 0,
- res.getString(R.string.caches_on_map)).setIcon(
- android.R.drawable.ic_menu_mapmode);
- for (CacheListApp app : activeApps) {
- subMenu.add(0, app.getId(), 0, app.getName());
- }
- return subMenu.getItem();
- } else if (activeApps.size() == 1) {
- return menu.add(0, activeApps.get(0).getId(), 0,
- activeApps.get(0).getName()).setIcon(android.R.drawable.ic_menu_mapmode);
- }
- return null;
- }
-
- public static boolean onMenuItemSelected(final MenuItem item,
- final cgGeo geo, final List<cgCache> caches, final Activity activity, final Resources res,
- final UUID searchId) {
- CacheListApp app = (CacheListApp) getAppFromMenuItem(item, apps);
- if (app != null) {
- try {
- return app.invoke(geo, caches, activity, res, searchId);
- } catch (Exception e) {
- Log.e(cgSettings.tag, "CacheListAppFactory.onMenuItemSelected: " + e.toString());
- }
- }
- return false;
- }
-
-}
diff --git a/src/cgeo/geocaching/apps/cachelist/InternalCacheListMap.java b/src/cgeo/geocaching/apps/cachelist/InternalCacheListMap.java
deleted file mode 100644
index 7eec0f8..0000000
--- a/src/cgeo/geocaching/apps/cachelist/InternalCacheListMap.java
+++ /dev/null
@@ -1,37 +0,0 @@
-package cgeo.geocaching.apps.cachelist;
-
-import cgeo.geocaching.R;
-import cgeo.geocaching.cgCache;
-import cgeo.geocaching.cgGeo;
-import cgeo.geocaching.apps.AbstractApp;
-
-import android.app.Activity;
-import android.content.Context;
-import android.content.Intent;
-import android.content.res.Resources;
-
-import java.util.List;
-import java.util.UUID;
-
-class InternalCacheListMap extends AbstractApp implements CacheListApp {
-
- InternalCacheListMap(Resources res) {
- super(res.getString(R.string.cache_menu_map), null);
- }
-
- @Override
- public boolean isInstalled(Context context) {
- return true;
- }
-
- @Override
- public boolean invoke(cgGeo geo, List<cgCache> caches, Activity activity, Resources res, final UUID searchId) {
- Intent mapIntent = new Intent(activity, getSettings(activity).getMapFactory()
- .getMapClass());
- mapIntent.putExtra("detail", false); // this is the main difference to the activity for a single point
- mapIntent.putExtra("searchid", searchId.toString());
-
- activity.startActivity(mapIntent);
- return true;
- }
-}
diff --git a/src/cgeo/geocaching/apps/cachelist/LocusCacheListApp.java b/src/cgeo/geocaching/apps/cachelist/LocusCacheListApp.java
deleted file mode 100644
index ed6ac20..0000000
--- a/src/cgeo/geocaching/apps/cachelist/LocusCacheListApp.java
+++ /dev/null
@@ -1,36 +0,0 @@
-package cgeo.geocaching.apps.cachelist;
-
-import cgeo.geocaching.cgCache;
-import cgeo.geocaching.cgGeo;
-import cgeo.geocaching.apps.AbstractLocusApp;
-
-import android.app.Activity;
-import android.content.res.Resources;
-
-import java.util.List;
-import java.util.UUID;
-
-class LocusCacheListApp extends AbstractLocusApp implements CacheListApp {
-
- LocusCacheListApp(Resources res) {
- super(res);
- }
-
- /**
- * show caches in Locus
- *
- * @see AbstractLocusApp#showInLocus
- * @author koem
- */
- @Override
- public boolean invoke(cgGeo geo, List<cgCache> cacheList, Activity activity, Resources res,
- final UUID searchId) {
- if (cacheList == null || cacheList.isEmpty())
- return false;
-
- this.showInLocus((List<? extends Object>) cacheList, false, activity);
-
- return true;
- }
-
-}