diff options
Diffstat (limited to 'src/cgeo/geocaching/apps')
16 files changed, 57 insertions, 22 deletions
diff --git a/src/cgeo/geocaching/apps/AbstractApp.java b/src/cgeo/geocaching/apps/AbstractApp.java index 42ce677..190bf5e 100644 --- a/src/cgeo/geocaching/apps/AbstractApp.java +++ b/src/cgeo/geocaching/apps/AbstractApp.java @@ -8,6 +8,7 @@ import android.content.Intent; import android.content.pm.PackageManager; import android.content.pm.ResolveInfo; import cgeo.geocaching.cgSettings; +import cgeo.geocaching.utils.CollectionUtils; public abstract class AbstractApp implements App { @@ -60,7 +61,7 @@ public abstract class AbstractApp implements App { final List<ResolveInfo> list = packageManager.queryIntentActivities( intent, PackageManager.MATCH_DEFAULT_ONLY); - return list.size() > 0; + return (CollectionUtils.isNotEmpty(list)); } @Override diff --git a/src/cgeo/geocaching/apps/cache/GeneralAppsFactory.java b/src/cgeo/geocaching/apps/cache/GeneralAppsFactory.java index 8291365..c184bd0 100644 --- a/src/cgeo/geocaching/apps/cache/GeneralAppsFactory.java +++ b/src/cgeo/geocaching/apps/cache/GeneralAppsFactory.java @@ -1,5 +1,7 @@ package cgeo.geocaching.apps.cache; +import org.apache.commons.lang3.ArrayUtils; + import android.app.Activity; import android.content.res.Resources; import android.util.Log; @@ -13,7 +15,7 @@ public final class GeneralAppsFactory extends AbstractAppFactory { private static GeneralApp[] apps = new GeneralApp[] {}; private static GeneralApp[] getGeneralApps(Resources res) { - if (null == apps || 0 == apps.length) { + if (ArrayUtils.isEmpty(apps)) { apps = new GeneralApp[] { new GccApp(res), new WhereYouGoApp(res) }; } diff --git a/src/cgeo/geocaching/apps/cache/navi/GoogleMapsApp.java b/src/cgeo/geocaching/apps/cache/navi/GoogleMapsApp.java index 6b05426..273be5c 100644 --- a/src/cgeo/geocaching/apps/cache/navi/GoogleMapsApp.java +++ b/src/cgeo/geocaching/apps/cache/navi/GoogleMapsApp.java @@ -1,5 +1,7 @@ package cgeo.geocaching.apps.cache.navi; +import java.util.UUID; + import android.app.Activity; import android.content.Context; import android.content.Intent; @@ -26,7 +28,7 @@ class GoogleMapsApp extends AbstractNavigationApp implements NavigationApp { public boolean invoke(cgGeo geo, Activity activity, Resources res, cgCache cache, - Long searchId, cgWaypoint waypoint, Double latitude, Double longitude) { + final UUID searchId, cgWaypoint waypoint, Double latitude, Double longitude) { if (cache == null && waypoint == null && latitude == null && longitude == null) { return false; } diff --git a/src/cgeo/geocaching/apps/cache/navi/GoogleNavigationApp.java b/src/cgeo/geocaching/apps/cache/navi/GoogleNavigationApp.java index b8afb54..4a7a49e 100644 --- a/src/cgeo/geocaching/apps/cache/navi/GoogleNavigationApp.java +++ b/src/cgeo/geocaching/apps/cache/navi/GoogleNavigationApp.java @@ -1,5 +1,7 @@ package cgeo.geocaching.apps.cache.navi; +import java.util.UUID; + import android.app.Activity; import android.content.Context; import android.content.Intent; @@ -28,7 +30,7 @@ class GoogleNavigationApp extends AbstractNavigationApp implements @Override public boolean invoke(final cgGeo geo, final Activity activity, final Resources res, final cgCache cache, - final Long searchId, final cgWaypoint waypoint, final Double latitude, final Double longitude) { + final UUID searchId, final cgWaypoint waypoint, final Double latitude, final Double longitude) { if (activity == null) { return false; } diff --git a/src/cgeo/geocaching/apps/cache/navi/InternalMap.java b/src/cgeo/geocaching/apps/cache/navi/InternalMap.java index 4c3d815..513172c 100644 --- a/src/cgeo/geocaching/apps/cache/navi/InternalMap.java +++ b/src/cgeo/geocaching/apps/cache/navi/InternalMap.java @@ -1,5 +1,7 @@ package cgeo.geocaching.apps.cache.navi; +import java.util.UUID; + import android.app.Activity; import android.content.Intent; import android.content.res.Resources; @@ -19,7 +21,7 @@ class InternalMap extends AbstractInternalMap implements @Override public boolean invoke(cgGeo geo, Activity activity, Resources res, cgCache cache, - Long searchId, cgWaypoint waypoint, Double latitude, Double longitude) { + final UUID searchId, cgWaypoint waypoint, Double latitude, Double longitude) { cgSettings settings = getSettings(activity); Intent mapIntent = new Intent(activity, settings.getMapFactory().getMapClass()); if (cache != null) { @@ -28,7 +30,7 @@ class InternalMap extends AbstractInternalMap implements } if (searchId != null) { mapIntent.putExtra("detail", true); - mapIntent.putExtra("searchid", searchId); + mapIntent.putExtra("searchid", searchId.toString()); } if (waypoint != null) { mapIntent.putExtra("latitude", waypoint.latitude); diff --git a/src/cgeo/geocaching/apps/cache/navi/LocusApp.java b/src/cgeo/geocaching/apps/cache/navi/LocusApp.java index c74e855..11a5ae3 100644 --- a/src/cgeo/geocaching/apps/cache/navi/LocusApp.java +++ b/src/cgeo/geocaching/apps/cache/navi/LocusApp.java @@ -1,6 +1,10 @@ package cgeo.geocaching.apps.cache.navi; import java.util.ArrayList; +import java.util.List; +import java.util.UUID; + +import org.apache.commons.lang3.StringUtils; import android.app.Activity; import android.content.res.Resources; @@ -8,6 +12,7 @@ import cgeo.geocaching.cgCache; import cgeo.geocaching.cgGeo; import cgeo.geocaching.cgWaypoint; import cgeo.geocaching.apps.AbstractLocusApp; +import cgeo.geocaching.utils.CollectionUtils; class LocusApp extends AbstractLocusApp implements NavigationApp { @@ -24,7 +29,7 @@ class LocusApp extends AbstractLocusApp implements NavigationApp { */ @Override public boolean invoke(cgGeo geo, Activity activity, Resources res, cgCache cache, - Long searchId, cgWaypoint waypoint, Double latitude, Double longitude) { + final UUID searchId, cgWaypoint waypoint, Double latitude, Double longitude) { if (cache == null && waypoint == null && latitude == null && longitude == null) { return false; @@ -42,6 +47,7 @@ class LocusApp extends AbstractLocusApp implements NavigationApp { if (cache.longitude != null && cache.latitude != null) { points.add(cache); } + // use only waypoints with coordinates if (cache.waypoints != null) { for (cgWaypoint wp : cache.waypoints) { diff --git a/src/cgeo/geocaching/apps/cache/navi/NavigationApp.java b/src/cgeo/geocaching/apps/cache/navi/NavigationApp.java index 2f52111..db0c1e3 100644 --- a/src/cgeo/geocaching/apps/cache/navi/NavigationApp.java +++ b/src/cgeo/geocaching/apps/cache/navi/NavigationApp.java @@ -1,5 +1,7 @@ package cgeo.geocaching.apps.cache.navi; +import java.util.UUID; + import android.app.Activity; import android.content.res.Resources; import cgeo.geocaching.cgCache; @@ -11,6 +13,6 @@ interface NavigationApp extends App { public boolean invoke(final cgGeo geo, final Activity activity, final Resources res, final cgCache cache, - final Long searchId, final cgWaypoint waypoint, + final UUID searchId, final cgWaypoint waypoint, final Double latitude, final Double longitude); } diff --git a/src/cgeo/geocaching/apps/cache/navi/NavigationAppFactory.java b/src/cgeo/geocaching/apps/cache/navi/NavigationAppFactory.java index e496e33..b8872e3 100644 --- a/src/cgeo/geocaching/apps/cache/navi/NavigationAppFactory.java +++ b/src/cgeo/geocaching/apps/cache/navi/NavigationAppFactory.java @@ -1,6 +1,9 @@ package cgeo.geocaching.apps.cache.navi; -import java.util.ArrayList; +import java.util.List; +import java.util.UUID; + +import org.apache.commons.lang3.ArrayUtils; import android.app.Activity; import android.content.res.Resources; @@ -17,7 +20,7 @@ public final class NavigationAppFactory extends AbstractAppFactory { private static NavigationApp[] apps = new NavigationApp[] {}; private static NavigationApp[] getNavigationApps(Resources res) { - if (null == apps || 0 == apps.length) { + if (ArrayUtils.isEmpty(apps)) { apps = new NavigationApp[] { // compass new RadarApp(res), @@ -44,7 +47,7 @@ public final class NavigationAppFactory extends AbstractAppFactory { public static boolean onMenuItemSelected(final MenuItem item, final cgGeo geo, Activity activity, Resources res, cgCache cache, - Long searchId, cgWaypoint waypoint, ArrayList<Double> destination) { + final UUID searchId, cgWaypoint waypoint, List<Double> destination) { NavigationApp app = (NavigationApp) getAppFromMenuItem(item, apps); if (app != null) { Double latitude = null; diff --git a/src/cgeo/geocaching/apps/cache/navi/RMapsApp.java b/src/cgeo/geocaching/apps/cache/navi/RMapsApp.java index 80802ac..8e75aaa 100644 --- a/src/cgeo/geocaching/apps/cache/navi/RMapsApp.java +++ b/src/cgeo/geocaching/apps/cache/navi/RMapsApp.java @@ -2,6 +2,7 @@ package cgeo.geocaching.apps.cache.navi; import java.util.ArrayList; import java.util.Locale; +import java.util.UUID; import android.app.Activity; import android.content.Intent; @@ -22,7 +23,7 @@ class RMapsApp extends AbstractNavigationApp implements NavigationApp { @Override public boolean invoke(cgGeo geo, Activity activity, Resources res, cgCache cache, - Long searchId, cgWaypoint waypoint, Double latitude, Double longitude) { + final UUID searchId, cgWaypoint waypoint, Double latitude, Double longitude) { if (cache == null && waypoint == null && latitude == null && longitude == null) { return false; diff --git a/src/cgeo/geocaching/apps/cache/navi/RadarApp.java b/src/cgeo/geocaching/apps/cache/navi/RadarApp.java index a4aec8c..7dc7676 100644 --- a/src/cgeo/geocaching/apps/cache/navi/RadarApp.java +++ b/src/cgeo/geocaching/apps/cache/navi/RadarApp.java @@ -1,5 +1,7 @@ package cgeo.geocaching.apps.cache.navi; +import java.util.UUID; + import android.app.Activity; import android.content.Intent; import android.content.res.Resources; @@ -27,7 +29,7 @@ class RadarApp extends AbstractNavigationApp implements NavigationApp { @Override public boolean invoke(cgGeo geo, Activity activity, Resources res, cgCache cache, - Long searchId, cgWaypoint waypoint, Double latitude, Double longitude) { + final UUID searchId, cgWaypoint waypoint, Double latitude, Double longitude) { if (cache != null) { if (cache.latitude != null && cache.longitude != null) { navigateTo(activity, cache.latitude, cache.longitude); diff --git a/src/cgeo/geocaching/apps/cache/navi/StaticMapApp.java b/src/cgeo/geocaching/apps/cache/navi/StaticMapApp.java index b6ae8c1..db6b27b 100644 --- a/src/cgeo/geocaching/apps/cache/navi/StaticMapApp.java +++ b/src/cgeo/geocaching/apps/cache/navi/StaticMapApp.java @@ -1,5 +1,7 @@ package cgeo.geocaching.apps.cache.navi; +import java.util.UUID; + import android.app.Activity; import android.content.Context; import android.content.Intent; @@ -26,7 +28,7 @@ class StaticMapApp extends AbstractNavigationApp implements @Override public boolean invoke(cgGeo geo, Activity activity, Resources res, cgCache cache, - Long searchId, cgWaypoint waypoint, Double latitude, Double longitude) { + final UUID searchId, cgWaypoint waypoint, Double latitude, Double longitude) { if (cache == null || cache.reason == 0) { ActivityMixin.showToast(activity, res.getString(R.string.err_detail_no_map_static)); diff --git a/src/cgeo/geocaching/apps/cache/navi/StreetviewApp.java b/src/cgeo/geocaching/apps/cache/navi/StreetviewApp.java index 24d6606..250bc65 100644 --- a/src/cgeo/geocaching/apps/cache/navi/StreetviewApp.java +++ b/src/cgeo/geocaching/apps/cache/navi/StreetviewApp.java @@ -1,5 +1,7 @@ package cgeo.geocaching.apps.cache.navi; +import java.util.UUID; + import android.app.Activity; import android.content.ActivityNotFoundException; import android.content.Context; @@ -25,7 +27,7 @@ class StreetviewApp extends AbstractNavigationApp implements NavigationApp { public boolean invoke(cgGeo geo, Activity activity, Resources res, cgCache cache, - Long searchId, cgWaypoint waypoint, Double latitude, Double longitude) { + final UUID searchId, cgWaypoint waypoint, Double latitude, Double longitude) { if (cache == null && waypoint == null && latitude == null && longitude == null) { return false; } diff --git a/src/cgeo/geocaching/apps/cachelist/CacheListApp.java b/src/cgeo/geocaching/apps/cachelist/CacheListApp.java index b58358c..74fba64 100644 --- a/src/cgeo/geocaching/apps/cachelist/CacheListApp.java +++ b/src/cgeo/geocaching/apps/cachelist/CacheListApp.java @@ -1,6 +1,7 @@ package cgeo.geocaching.apps.cachelist; import java.util.List; +import java.util.UUID; import android.app.Activity; import android.content.res.Resources; @@ -12,6 +13,6 @@ interface CacheListApp extends App { boolean invoke(final cgGeo geo, final List<cgCache> caches, final Activity activity, final Resources res, - final Long searchId); + final UUID searchId); } diff --git a/src/cgeo/geocaching/apps/cachelist/CacheListAppFactory.java b/src/cgeo/geocaching/apps/cachelist/CacheListAppFactory.java index 416388d..cb69e17 100644 --- a/src/cgeo/geocaching/apps/cachelist/CacheListAppFactory.java +++ b/src/cgeo/geocaching/apps/cachelist/CacheListAppFactory.java @@ -2,6 +2,9 @@ package cgeo.geocaching.apps.cachelist; import java.util.ArrayList; import java.util.List; +import java.util.UUID; + +import org.apache.commons.lang3.ArrayUtils; import android.app.Activity; import android.content.res.Resources; @@ -20,7 +23,7 @@ public final class CacheListAppFactory extends AbstractAppFactory { private static CacheListApp[] getMultiPointNavigationApps( Resources res) { - if (null == apps || 0 == apps.length) { + if (ArrayUtils.isEmpty(apps)) { apps = new CacheListApp[] { new InternalCacheListMap(res), new LocusCacheListApp(res) }; @@ -36,7 +39,7 @@ public final class CacheListAppFactory extends AbstractAppFactory { */ public static MenuItem addMenuItems(Menu menu, Activity activity, Resources res) { - ArrayList<CacheListApp> activeApps = new ArrayList<CacheListApp>(); + List<CacheListApp> activeApps = new ArrayList<CacheListApp>(); for (CacheListApp app : getMultiPointNavigationApps(res)) { if (app.isInstalled(activity)) { activeApps.add(app); @@ -60,7 +63,7 @@ public final class CacheListAppFactory extends AbstractAppFactory { public static boolean onMenuItemSelected(final MenuItem item, final cgGeo geo, final List<cgCache> caches, final Activity activity, final Resources res, - final Long searchId) { + final UUID searchId) { CacheListApp app = (CacheListApp) getAppFromMenuItem( item, apps); if (app != null) { diff --git a/src/cgeo/geocaching/apps/cachelist/InternalCacheListMap.java b/src/cgeo/geocaching/apps/cachelist/InternalCacheListMap.java index 8576aab..2fd418e 100644 --- a/src/cgeo/geocaching/apps/cachelist/InternalCacheListMap.java +++ b/src/cgeo/geocaching/apps/cachelist/InternalCacheListMap.java @@ -1,6 +1,7 @@ package cgeo.geocaching.apps.cachelist; import java.util.List; +import java.util.UUID; import android.app.Activity; import android.content.Context; @@ -23,11 +24,11 @@ class InternalCacheListMap extends AbstractApp implements CacheListApp { } @Override - public boolean invoke(cgGeo geo, List<cgCache> caches, Activity activity, Resources res, Long searchId) { + 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); + 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 index 9c14d48..3ca3653 100644 --- a/src/cgeo/geocaching/apps/cachelist/LocusCacheListApp.java +++ b/src/cgeo/geocaching/apps/cachelist/LocusCacheListApp.java @@ -1,6 +1,9 @@ package cgeo.geocaching.apps.cachelist; import java.util.List; +import java.util.UUID; + +import org.apache.commons.lang3.StringUtils; import android.app.Activity; import android.content.res.Resources; @@ -22,7 +25,7 @@ class LocusCacheListApp extends AbstractLocusApp implements CacheListApp { */ @Override public boolean invoke(cgGeo geo, List<cgCache> cacheList, Activity activity, Resources res, - final Long searchId) { + final UUID searchId) { if (cacheList == null || cacheList.isEmpty()) return false; this.showInLocus((List<? extends Object>) cacheList, activity); |
