aboutsummaryrefslogtreecommitdiffstats
path: root/main/src/cgeo/geocaching/apps
diff options
context:
space:
mode:
authorBananeweizen <Bananeweizen@gmx.de>2012-12-30 10:54:43 +0100
committerBananeweizen <Bananeweizen@gmx.de>2012-12-30 10:54:43 +0100
commitaba2786ec38c1653b92c3affd88d2060c1d6b8df (patch)
tree5c71104761fd63763fa6835a10e0a480372fab64 /main/src/cgeo/geocaching/apps
parentcb94f1f020596be019cc4c000a93a318600d7f37 (diff)
downloadcgeo-aba2786ec38c1653b92c3affd88d2060c1d6b8df.zip
cgeo-aba2786ec38c1653b92c3affd88d2060c1d6b8df.tar.gz
cgeo-aba2786ec38c1653b92c3affd88d2060c1d6b8df.tar.bz2
fix #2054: Navigate options are different
Diffstat (limited to 'main/src/cgeo/geocaching/apps')
-rw-r--r--main/src/cgeo/geocaching/apps/cache/AbstractGeneralApp.java7
-rw-r--r--main/src/cgeo/geocaching/apps/cache/CacheBeaconApp.java5
-rw-r--r--main/src/cgeo/geocaching/apps/cache/GccApp.java4
-rw-r--r--main/src/cgeo/geocaching/apps/cache/GeneralApp.java12
-rw-r--r--main/src/cgeo/geocaching/apps/cache/GeneralAppsFactory.java48
-rw-r--r--main/src/cgeo/geocaching/apps/cache/WhereYouGoApp.java6
-rw-r--r--main/src/cgeo/geocaching/apps/cache/navi/NavigationAppFactory.java20
7 files changed, 21 insertions, 81 deletions
diff --git a/main/src/cgeo/geocaching/apps/cache/AbstractGeneralApp.java b/main/src/cgeo/geocaching/apps/cache/AbstractGeneralApp.java
index 61528ea..8087d6d 100644
--- a/main/src/cgeo/geocaching/apps/cache/AbstractGeneralApp.java
+++ b/main/src/cgeo/geocaching/apps/cache/AbstractGeneralApp.java
@@ -2,24 +2,23 @@ package cgeo.geocaching.apps.cache;
import cgeo.geocaching.cgCache;
import cgeo.geocaching.apps.AbstractApp;
+import cgeo.geocaching.apps.cache.navi.CacheNavigationApp;
import android.app.Activity;
import android.content.Intent;
-abstract class AbstractGeneralApp extends AbstractApp implements GeneralApp {
+abstract class AbstractGeneralApp extends AbstractApp implements CacheNavigationApp {
protected AbstractGeneralApp(String name, String packageName) {
super(name, null, packageName);
}
@Override
- public boolean invoke(Activity activity, cgCache cache) {
+ public void navigate(Activity activity, cgCache cache) {
final Intent intent = getLaunchIntent();
if (intent != null) {
intent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
activity.startActivity(intent);
- return true;
}
- return false;
}
}
diff --git a/main/src/cgeo/geocaching/apps/cache/CacheBeaconApp.java b/main/src/cgeo/geocaching/apps/cache/CacheBeaconApp.java
index 6e7cdca..4ba336f 100644
--- a/main/src/cgeo/geocaching/apps/cache/CacheBeaconApp.java
+++ b/main/src/cgeo/geocaching/apps/cache/CacheBeaconApp.java
@@ -6,15 +6,12 @@ import cgeo.geocaching.enumerations.CacheAttribute;
public class CacheBeaconApp extends AbstractGeneralApp {
- protected CacheBeaconApp() {
+ public CacheBeaconApp() {
super(getString(R.string.cache_menu_cachebeacon), "de.fun2code.android.cachebeacon");
}
@Override
public boolean isEnabled(cgCache cache) {
- if (cache == null) {
- return false;
- }
return cache.hasAttribute(CacheAttribute.WIRELESS_BEACON, true);
}
diff --git a/main/src/cgeo/geocaching/apps/cache/GccApp.java b/main/src/cgeo/geocaching/apps/cache/GccApp.java
index 9000d9e..b129b45 100644
--- a/main/src/cgeo/geocaching/apps/cache/GccApp.java
+++ b/main/src/cgeo/geocaching/apps/cache/GccApp.java
@@ -2,8 +2,8 @@ package cgeo.geocaching.apps.cache;
import cgeo.geocaching.R;
-class GccApp extends AbstractGeneralApp {
- GccApp() {
+public class GccApp extends AbstractGeneralApp {
+ public GccApp() {
super(getString(R.string.cache_menu_gcc), "eisbehr.gcc");
}
}
diff --git a/main/src/cgeo/geocaching/apps/cache/GeneralApp.java b/main/src/cgeo/geocaching/apps/cache/GeneralApp.java
deleted file mode 100644
index cdbedd5..0000000
--- a/main/src/cgeo/geocaching/apps/cache/GeneralApp.java
+++ /dev/null
@@ -1,12 +0,0 @@
-package cgeo.geocaching.apps.cache;
-
-import cgeo.geocaching.cgCache;
-import cgeo.geocaching.apps.App;
-
-import android.app.Activity;
-
-interface GeneralApp extends App {
-
- public boolean invoke(Activity activity, cgCache cache);
-
-}
diff --git a/main/src/cgeo/geocaching/apps/cache/GeneralAppsFactory.java b/main/src/cgeo/geocaching/apps/cache/GeneralAppsFactory.java
deleted file mode 100644
index 57eb957..0000000
--- a/main/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.apps.AbstractAppFactory;
-import cgeo.geocaching.utils.Log;
-
-import org.apache.commons.lang3.ArrayUtils;
-
-import android.app.Activity;
-import android.view.Menu;
-import android.view.MenuItem;
-
-public final class GeneralAppsFactory extends AbstractAppFactory {
- private static GeneralApp[] apps = new GeneralApp[] {};
-
- private static GeneralApp[] getGeneralApps() {
- if (ArrayUtils.isEmpty(apps)) {
- apps = new GeneralApp[] {
- new CacheBeaconApp(),
- new GccApp(),
- new WhereYouGoApp()
- };
- }
- return apps;
- }
-
- public static void addMenuItems(Menu menu, cgCache cache) {
- for (GeneralApp app : getGeneralApps()) {
- if (app.isInstalled() && app.isEnabled(cache)) {
- menu.add(0, app.getId(), 0, app.getName());
- }
- }
- }
-
- public static boolean onMenuItemSelected(final MenuItem item, Activity activity, cgCache cache) {
- final GeneralApp app = (GeneralApp) getAppFromMenuItem(item, apps);
- if (app == null) {
- return false;
- }
- try {
- app.invoke(activity, cache);
- } catch (Exception e) {
- Log.e("GeneralAppsFactory.onMenuItemSelected: " + e.toString());
- }
- return true;
- }
-
-}
diff --git a/main/src/cgeo/geocaching/apps/cache/WhereYouGoApp.java b/main/src/cgeo/geocaching/apps/cache/WhereYouGoApp.java
index 8c16eaf..8c06d7a 100644
--- a/main/src/cgeo/geocaching/apps/cache/WhereYouGoApp.java
+++ b/main/src/cgeo/geocaching/apps/cache/WhereYouGoApp.java
@@ -4,13 +4,13 @@ import cgeo.geocaching.R;
import cgeo.geocaching.cgCache;
import cgeo.geocaching.enumerations.CacheType;
-class WhereYouGoApp extends AbstractGeneralApp {
- WhereYouGoApp() {
+public class WhereYouGoApp extends AbstractGeneralApp {
+ public WhereYouGoApp() {
super(getString(R.string.cache_menu_whereyougo), "menion.android.whereyougo");
}
@Override
public boolean isEnabled(cgCache cache) {
- return cache != null && cache.getType() == CacheType.WHERIGO;
+ return cache.getType() == CacheType.WHERIGO;
}
}
diff --git a/main/src/cgeo/geocaching/apps/cache/navi/NavigationAppFactory.java b/main/src/cgeo/geocaching/apps/cache/navi/NavigationAppFactory.java
index 0ff4af2..2f8ce16 100644
--- a/main/src/cgeo/geocaching/apps/cache/navi/NavigationAppFactory.java
+++ b/main/src/cgeo/geocaching/apps/cache/navi/NavigationAppFactory.java
@@ -8,6 +8,9 @@ import cgeo.geocaching.cgeoapplication;
import cgeo.geocaching.activity.ActivityMixin;
import cgeo.geocaching.apps.AbstractAppFactory;
import cgeo.geocaching.apps.App;
+import cgeo.geocaching.apps.cache.CacheBeaconApp;
+import cgeo.geocaching.apps.cache.GccApp;
+import cgeo.geocaching.apps.cache.WhereYouGoApp;
import cgeo.geocaching.apps.cache.navi.GoogleNavigationApp.GoogleNavigationDrivingApp;
import cgeo.geocaching.apps.cache.navi.GoogleNavigationApp.GoogleNavigationWalkingApp;
import cgeo.geocaching.geopoint.Geopoint;
@@ -58,7 +61,11 @@ public final class NavigationAppFactory extends AbstractAppFactory {
/**
* Google Maps Directions
*/
- GOOGLE_MAPS_DIRECTIONS(new GoogleMapsDirectionApp(), 13);
+ GOOGLE_MAPS_DIRECTIONS(new GoogleMapsDirectionApp(), 13),
+
+ CACHE_BEACON(new CacheBeaconApp(), 14),
+ GCC(new GccApp(), 15),
+ WHERE_YOU_GO(new WhereYouGoApp(), 16);
NavigationAppsEnum(App app, int id) {
this.app = app;
@@ -125,7 +132,6 @@ public final class NavigationAppFactory extends AbstractAppFactory {
final boolean showInternalMap, final boolean showDefaultNavigation) {
final AlertDialog.Builder builder = new AlertDialog.Builder(activity);
builder.setTitle(R.string.cache_menu_navigate);
- builder.setIcon(R.drawable.ic_menu_mapmode);
final List<NavigationAppsEnum> items = new ArrayList<NavigationAppFactory.NavigationAppsEnum>();
final int defaultNavigationTool = Settings.getDefaultNavigationTool();
for (NavigationAppsEnum navApp : getInstalledNavigationApps()) {
@@ -156,17 +162,15 @@ public final class NavigationAppFactory extends AbstractAppFactory {
@Override
public void onClick(DialogInterface dialog, int item) {
NavigationAppsEnum selectedItem = adapter.getItem(item);
+ App app = selectedItem.app;
if (cache != null) {
- CacheNavigationApp cacheApp = (CacheNavigationApp) selectedItem.app;
- cacheApp.navigate(activity, cache);
+ navigateCache(activity, cache, app);
}
else if (waypoint != null) {
- WaypointNavigationApp waypointApp = (WaypointNavigationApp) selectedItem.app;
- waypointApp.navigate(activity, waypoint);
+ navigateWaypoint(activity, waypoint, app);
}
else {
- GeopointNavigationApp geopointApp = (GeopointNavigationApp) selectedItem.app;
- geopointApp.navigate(activity, destination);
+ navigateGeopoint(activity, destination, app);
}
}
});