aboutsummaryrefslogtreecommitdiffstats
path: root/main/src/cgeo/geocaching/apps
diff options
context:
space:
mode:
Diffstat (limited to 'main/src/cgeo/geocaching/apps')
-rw-r--r--main/src/cgeo/geocaching/apps/AbstractApp.java4
-rw-r--r--main/src/cgeo/geocaching/apps/AbstractLocusApp.java4
-rw-r--r--main/src/cgeo/geocaching/apps/cache/navi/AbstractPointNavigationApp.java16
-rw-r--r--main/src/cgeo/geocaching/apps/cache/navi/AbstractStaticMapsApp.java4
-rw-r--r--main/src/cgeo/geocaching/apps/cache/navi/GoogleMapsApp.java2
-rw-r--r--main/src/cgeo/geocaching/apps/cache/navi/GoogleMapsDirectionApp.java4
-rw-r--r--main/src/cgeo/geocaching/apps/cache/navi/NavigationAppFactory.java15
-rw-r--r--main/src/cgeo/geocaching/apps/cache/navi/StreetviewApp.java4
-rw-r--r--main/src/cgeo/geocaching/apps/cachelist/AbstractLocusCacheListApp.java (renamed from main/src/cgeo/geocaching/apps/cachelist/LocusCacheListApp.java)8
-rw-r--r--main/src/cgeo/geocaching/apps/cachelist/CacheListAppFactory.java14
-rw-r--r--main/src/cgeo/geocaching/apps/cachelist/LocusExportCacheListApp.java9
-rw-r--r--main/src/cgeo/geocaching/apps/cachelist/LocusShowCacheListApp.java9
12 files changed, 64 insertions, 29 deletions
diff --git a/main/src/cgeo/geocaching/apps/AbstractApp.java b/main/src/cgeo/geocaching/apps/AbstractApp.java
index 7b6b3d9..d861542 100644
--- a/main/src/cgeo/geocaching/apps/AbstractApp.java
+++ b/main/src/cgeo/geocaching/apps/AbstractApp.java
@@ -1,7 +1,7 @@
package cgeo.geocaching.apps;
import cgeo.geocaching.Geocache;
-import cgeo.geocaching.cgeoapplication;
+import cgeo.geocaching.CgeoApplication;
import cgeo.geocaching.utils.ProcessUtils;
import org.apache.commons.lang3.StringUtils;
@@ -53,7 +53,7 @@ public abstract class AbstractApp implements App {
}
protected static String getString(int ressourceId) {
- return cgeoapplication.getInstance().getString(ressourceId);
+ return CgeoApplication.getInstance().getString(ressourceId);
}
@Override
diff --git a/main/src/cgeo/geocaching/apps/AbstractLocusApp.java b/main/src/cgeo/geocaching/apps/AbstractLocusApp.java
index 53620e4..2db8918 100644
--- a/main/src/cgeo/geocaching/apps/AbstractLocusApp.java
+++ b/main/src/cgeo/geocaching/apps/AbstractLocusApp.java
@@ -3,7 +3,7 @@ package cgeo.geocaching.apps;
import cgeo.geocaching.Geocache;
import cgeo.geocaching.R;
import cgeo.geocaching.Waypoint;
-import cgeo.geocaching.cgeoapplication;
+import cgeo.geocaching.CgeoApplication;
import cgeo.geocaching.enumerations.CacheSize;
import cgeo.geocaching.enumerations.CacheType;
import cgeo.geocaching.enumerations.WaypointType;
@@ -43,7 +43,7 @@ public abstract class AbstractLocusApp extends AbstractApp {
@Override
public boolean isInstalled() {
- return LocusUtils.isLocusAvailable(cgeoapplication.getInstance());
+ return LocusUtils.isLocusAvailable(CgeoApplication.getInstance());
}
/**
diff --git a/main/src/cgeo/geocaching/apps/cache/navi/AbstractPointNavigationApp.java b/main/src/cgeo/geocaching/apps/cache/navi/AbstractPointNavigationApp.java
index a3ea57e..7542e24 100644
--- a/main/src/cgeo/geocaching/apps/cache/navi/AbstractPointNavigationApp.java
+++ b/main/src/cgeo/geocaching/apps/cache/navi/AbstractPointNavigationApp.java
@@ -1,8 +1,11 @@
package cgeo.geocaching.apps.cache.navi;
import cgeo.geocaching.Geocache;
+import cgeo.geocaching.R;
import cgeo.geocaching.Waypoint;
+import cgeo.geocaching.activity.ActivityMixin;
import cgeo.geocaching.apps.AbstractApp;
+import cgeo.geocaching.geopoint.Geopoint;
import android.app.Activity;
@@ -21,11 +24,22 @@ abstract class AbstractPointNavigationApp extends AbstractApp implements CacheNa
@Override
public void navigate(Activity activity, Geocache cache) {
- navigate(activity, cache.getCoords());
+ final Geopoint coords = cache.getCoords();
+ if (coords != null) {
+ navigate(activity, coords);
+ } else {
+ ActivityMixin.showToast(activity, activity.getResources().getString(R.string.err_nav_no_coordinates));
+ }
}
@Override
public void navigate(Activity activity, Waypoint waypoint) {
+ final Geopoint coords = waypoint.getCoords();
+ if (coords != null) {
+ navigate(activity, coords);
+ } else {
+ ActivityMixin.showToast(activity, activity.getResources().getString(R.string.err_nav_no_coordinates));
+ }
navigate(activity, waypoint.getCoords());
}
diff --git a/main/src/cgeo/geocaching/apps/cache/navi/AbstractStaticMapsApp.java b/main/src/cgeo/geocaching/apps/cache/navi/AbstractStaticMapsApp.java
index d898d7e..d5c9435 100644
--- a/main/src/cgeo/geocaching/apps/cache/navi/AbstractStaticMapsApp.java
+++ b/main/src/cgeo/geocaching/apps/cache/navi/AbstractStaticMapsApp.java
@@ -6,7 +6,7 @@ import cgeo.geocaching.R;
import cgeo.geocaching.StaticMapsActivity;
import cgeo.geocaching.StaticMapsProvider;
import cgeo.geocaching.Waypoint;
-import cgeo.geocaching.cgData;
+import cgeo.geocaching.DataStore;
import cgeo.geocaching.activity.ActivityMixin;
import cgeo.geocaching.apps.AbstractApp;
@@ -34,7 +34,7 @@ abstract class AbstractStaticMapsApp extends AbstractApp implements CacheNavigat
return false;
}
String geocode = waypoint.getGeocode();
- if (StringUtils.isNotEmpty(geocode) && cgData.isOffline(geocode, null)) {
+ if (StringUtils.isNotEmpty(geocode) && DataStore.isOffline(geocode, null)) {
return StaticMapsProvider.hasStaticMapForWaypoint(geocode, waypoint);
}
return false;
diff --git a/main/src/cgeo/geocaching/apps/cache/navi/GoogleMapsApp.java b/main/src/cgeo/geocaching/apps/cache/navi/GoogleMapsApp.java
index 03fae9e..4cbfa00 100644
--- a/main/src/cgeo/geocaching/apps/cache/navi/GoogleMapsApp.java
+++ b/main/src/cgeo/geocaching/apps/cache/navi/GoogleMapsApp.java
@@ -27,7 +27,7 @@ class GoogleMapsApp extends AbstractPointNavigationApp {
activity.startActivity(new Intent(Intent.ACTION_VIEW,
Uri.parse("geo:" + point.getLatitude() + "," + point.getLongitude())));
return;
- } catch (Exception e) {
+ } catch (RuntimeException e) {
// nothing
}
Log.i("GoogleMapsApp.navigate: No maps application available.");
diff --git a/main/src/cgeo/geocaching/apps/cache/navi/GoogleMapsDirectionApp.java b/main/src/cgeo/geocaching/apps/cache/navi/GoogleMapsDirectionApp.java
index a84b7e8..a5b9a94 100644
--- a/main/src/cgeo/geocaching/apps/cache/navi/GoogleMapsDirectionApp.java
+++ b/main/src/cgeo/geocaching/apps/cache/navi/GoogleMapsDirectionApp.java
@@ -2,7 +2,7 @@ package cgeo.geocaching.apps.cache.navi;
import cgeo.geocaching.IGeoData;
import cgeo.geocaching.R;
-import cgeo.geocaching.cgeoapplication;
+import cgeo.geocaching.CgeoApplication;
import cgeo.geocaching.geopoint.Geopoint;
import cgeo.geocaching.maps.MapProviderFactory;
import cgeo.geocaching.utils.Log;
@@ -25,7 +25,7 @@ public class GoogleMapsDirectionApp extends AbstractPointNavigationApp {
@Override
public void navigate(Activity activity, Geopoint coords) {
try {
- IGeoData geo = cgeoapplication.getInstance().currentGeo();
+ IGeoData geo = CgeoApplication.getInstance().currentGeo();
final Geopoint coordsNow = geo == null ? null : geo.getCoords();
if (coordsNow != null) {
diff --git a/main/src/cgeo/geocaching/apps/cache/navi/NavigationAppFactory.java b/main/src/cgeo/geocaching/apps/cache/navi/NavigationAppFactory.java
index ec6b3e1..c10da58 100644
--- a/main/src/cgeo/geocaching/apps/cache/navi/NavigationAppFactory.java
+++ b/main/src/cgeo/geocaching/apps/cache/navi/NavigationAppFactory.java
@@ -1,9 +1,9 @@
package cgeo.geocaching.apps.cache.navi;
+import cgeo.geocaching.CgeoApplication;
import cgeo.geocaching.Geocache;
import cgeo.geocaching.R;
import cgeo.geocaching.Waypoint;
-import cgeo.geocaching.cgeoapplication;
import cgeo.geocaching.activity.ActivityMixin;
import cgeo.geocaching.apps.AbstractAppFactory;
import cgeo.geocaching.apps.App;
@@ -16,6 +16,8 @@ import cgeo.geocaching.apps.cache.navi.GoogleNavigationApp.GoogleNavigationWalki
import cgeo.geocaching.geopoint.Geopoint;
import cgeo.geocaching.settings.Settings;
+import org.eclipse.jdt.annotation.Nullable;
+
import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
@@ -273,7 +275,7 @@ public final class NavigationAppFactory extends AbstractAppFactory {
return menuItem != null;
}
- private static void navigateCache(Activity activity, Geocache cache, App app) {
+ private static void navigateCache(Activity activity, Geocache cache, @Nullable App app) {
if (app instanceof CacheNavigationApp) {
final CacheNavigationApp cacheApp = (CacheNavigationApp) app;
cacheApp.navigate(activity, cache);
@@ -286,7 +288,7 @@ public final class NavigationAppFactory extends AbstractAppFactory {
return menuItem != null;
}
- private static void navigateWaypoint(Activity activity, Waypoint waypoint, App app) {
+ private static void navigateWaypoint(Activity activity, Waypoint waypoint, @Nullable App app) {
if (app instanceof WaypointNavigationApp) {
final WaypointNavigationApp waypointApp = (WaypointNavigationApp) app;
waypointApp.navigate(activity, waypoint);
@@ -300,6 +302,7 @@ public final class NavigationAppFactory extends AbstractAppFactory {
}
}
+ @Nullable
private static App getAppFromMenuItem(MenuItem item) {
final int id = item.getItemId();
for (final NavigationAppsEnum navApp : NavigationAppsEnum.values()) {
@@ -320,7 +323,7 @@ public final class NavigationAppFactory extends AbstractAppFactory {
*/
public static void startDefaultNavigationApplication(int defaultNavigation, Activity activity, Geocache cache) {
if (cache == null || cache.getCoords() == null) {
- ActivityMixin.showToast(activity, cgeoapplication.getInstance().getString(R.string.err_location_unknown));
+ ActivityMixin.showToast(activity, CgeoApplication.getInstance().getString(R.string.err_location_unknown));
return;
}
@@ -342,7 +345,7 @@ public final class NavigationAppFactory extends AbstractAppFactory {
*/
public static void startDefaultNavigationApplication(int defaultNavigation, Activity activity, Waypoint waypoint) {
if (waypoint == null || waypoint.getCoords() == null) {
- ActivityMixin.showToast(activity, cgeoapplication.getInstance().getString(R.string.err_location_unknown));
+ ActivityMixin.showToast(activity, CgeoApplication.getInstance().getString(R.string.err_location_unknown));
return;
}
navigateWaypoint(activity, waypoint, getDefaultNavigationApplication(defaultNavigation));
@@ -356,7 +359,7 @@ public final class NavigationAppFactory extends AbstractAppFactory {
*/
public static void startDefaultNavigationApplication(int defaultNavigation, Activity activity, final Geopoint destination) {
if (destination == null) {
- ActivityMixin.showToast(activity, cgeoapplication.getInstance().getString(R.string.err_location_unknown));
+ ActivityMixin.showToast(activity, CgeoApplication.getInstance().getString(R.string.err_location_unknown));
return;
}
diff --git a/main/src/cgeo/geocaching/apps/cache/navi/StreetviewApp.java b/main/src/cgeo/geocaching/apps/cache/navi/StreetviewApp.java
index e2c0828..df67e43 100644
--- a/main/src/cgeo/geocaching/apps/cache/navi/StreetviewApp.java
+++ b/main/src/cgeo/geocaching/apps/cache/navi/StreetviewApp.java
@@ -1,7 +1,7 @@
package cgeo.geocaching.apps.cache.navi;
+import cgeo.geocaching.CgeoApplication;
import cgeo.geocaching.R;
-import cgeo.geocaching.cgeoapplication;
import cgeo.geocaching.activity.ActivityMixin;
import cgeo.geocaching.geopoint.Geopoint;
import cgeo.geocaching.utils.ProcessUtils;
@@ -31,7 +31,7 @@ class StreetviewApp extends AbstractPointNavigationApp {
activity.startActivity(new Intent(Intent.ACTION_VIEW,
Uri.parse("google.streetview:cbll=" + point.getLatitude() + "," + point.getLongitude())));
} catch (final ActivityNotFoundException e) {
- ActivityMixin.showToast(activity, cgeoapplication.getInstance().getString(R.string.err_application_no));
+ ActivityMixin.showToast(activity, CgeoApplication.getInstance().getString(R.string.err_application_no));
}
}
} \ No newline at end of file
diff --git a/main/src/cgeo/geocaching/apps/cachelist/LocusCacheListApp.java b/main/src/cgeo/geocaching/apps/cachelist/AbstractLocusCacheListApp.java
index cd0289a..49d75d7 100644
--- a/main/src/cgeo/geocaching/apps/cachelist/LocusCacheListApp.java
+++ b/main/src/cgeo/geocaching/apps/cachelist/AbstractLocusCacheListApp.java
@@ -1,22 +1,22 @@
package cgeo.geocaching.apps.cachelist;
+import cgeo.geocaching.Geocache;
import cgeo.geocaching.R;
import cgeo.geocaching.SearchResult;
-import cgeo.geocaching.Geocache;
import cgeo.geocaching.apps.AbstractLocusApp;
-import org.apache.commons.collections.CollectionUtils;
+import org.apache.commons.collections4.CollectionUtils;
import android.app.Activity;
import android.content.Intent;
import java.util.List;
-class LocusCacheListApp extends AbstractLocusApp implements CacheListApp {
+abstract class AbstractLocusCacheListApp extends AbstractLocusApp implements CacheListApp {
private boolean export;
- public LocusCacheListApp(boolean export) {
+ public AbstractLocusCacheListApp(boolean export) {
super(getString(export ? R.string.caches_map_locus_export : R.string.caches_map_locus), Intent.ACTION_VIEW);
this.export = export;
}
diff --git a/main/src/cgeo/geocaching/apps/cachelist/CacheListAppFactory.java b/main/src/cgeo/geocaching/apps/cachelist/CacheListAppFactory.java
index b747eee..551bc9d 100644
--- a/main/src/cgeo/geocaching/apps/cachelist/CacheListAppFactory.java
+++ b/main/src/cgeo/geocaching/apps/cachelist/CacheListAppFactory.java
@@ -1,9 +1,9 @@
package cgeo.geocaching.apps.cachelist;
+import cgeo.geocaching.Geocache;
import cgeo.geocaching.R;
import cgeo.geocaching.SearchResult;
-import cgeo.geocaching.Geocache;
-import cgeo.geocaching.activity.IAbstractActivity;
+import cgeo.geocaching.activity.ActivityMixin;
import cgeo.geocaching.apps.AbstractAppFactory;
import cgeo.geocaching.utils.Log;
@@ -20,8 +20,8 @@ public final class CacheListAppFactory extends AbstractAppFactory {
private static class LazyHolder {
public static final CacheListApp[] apps = {
new InternalCacheListMap(),
- new LocusCacheListApp(false),
- new LocusCacheListApp(true)
+ new LocusShowCacheListApp(),
+ new LocusExportCacheListApp()
};
}
@@ -55,13 +55,13 @@ public final class CacheListAppFactory extends AbstractAppFactory {
}
}
- public static boolean onMenuItemSelected(final MenuItem item, final List<Geocache> caches, final IAbstractActivity activity,
+ public static boolean onMenuItemSelected(final MenuItem item, final List<Geocache> caches, final Activity activity,
final SearchResult search) {
final CacheListApp app = (CacheListApp) getAppFromMenuItem(item, LazyHolder.apps);
if (app != null) {
try {
- boolean result = app.invoke(caches, (Activity) activity, search);
- activity.invalidateOptionsMenuCompatible();
+ boolean result = app.invoke(caches, activity, search);
+ ActivityMixin.invalidateOptionsMenu(activity);
return result;
} catch (Exception e) {
Log.e("CacheListAppFactory.onMenuItemSelected", e);
diff --git a/main/src/cgeo/geocaching/apps/cachelist/LocusExportCacheListApp.java b/main/src/cgeo/geocaching/apps/cachelist/LocusExportCacheListApp.java
new file mode 100644
index 0000000..ef97be0
--- /dev/null
+++ b/main/src/cgeo/geocaching/apps/cachelist/LocusExportCacheListApp.java
@@ -0,0 +1,9 @@
+package cgeo.geocaching.apps.cachelist;
+
+final class LocusExportCacheListApp extends AbstractLocusCacheListApp {
+
+ public LocusExportCacheListApp() {
+ super(true);
+ }
+
+}
diff --git a/main/src/cgeo/geocaching/apps/cachelist/LocusShowCacheListApp.java b/main/src/cgeo/geocaching/apps/cachelist/LocusShowCacheListApp.java
new file mode 100644
index 0000000..4b018f9
--- /dev/null
+++ b/main/src/cgeo/geocaching/apps/cachelist/LocusShowCacheListApp.java
@@ -0,0 +1,9 @@
+package cgeo.geocaching.apps.cachelist;
+
+final class LocusShowCacheListApp extends AbstractLocusCacheListApp {
+
+ public LocusShowCacheListApp() {
+ super(false);
+ }
+
+}