diff options
Diffstat (limited to 'main/src/cgeo/geocaching/apps')
| -rw-r--r-- | main/src/cgeo/geocaching/apps/AbstractApp.java | 4 | ||||
| -rw-r--r-- | main/src/cgeo/geocaching/apps/AbstractLocusApp.java | 4 | ||||
| -rw-r--r-- | main/src/cgeo/geocaching/apps/cache/navi/AbstractPointNavigationApp.java | 16 | ||||
| -rw-r--r-- | main/src/cgeo/geocaching/apps/cache/navi/AbstractStaticMapsApp.java | 4 | ||||
| -rw-r--r-- | main/src/cgeo/geocaching/apps/cache/navi/GoogleMapsApp.java | 2 | ||||
| -rw-r--r-- | main/src/cgeo/geocaching/apps/cache/navi/GoogleMapsDirectionApp.java | 4 | ||||
| -rw-r--r-- | main/src/cgeo/geocaching/apps/cache/navi/NavigationAppFactory.java | 15 | ||||
| -rw-r--r-- | main/src/cgeo/geocaching/apps/cache/navi/StreetviewApp.java | 4 | ||||
| -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.java | 14 | ||||
| -rw-r--r-- | main/src/cgeo/geocaching/apps/cachelist/LocusExportCacheListApp.java | 9 | ||||
| -rw-r--r-- | main/src/cgeo/geocaching/apps/cachelist/LocusShowCacheListApp.java | 9 |
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); + } + +} |
