diff options
| author | rsudev <rasch@munin-soft.de> | 2012-01-10 06:30:44 -0800 |
|---|---|---|
| committer | rsudev <rasch@munin-soft.de> | 2012-01-10 06:30:44 -0800 |
| commit | 930b4d8718b767e20a031bb5bd37fe81bd024502 (patch) | |
| tree | 671437d8489b88ec51e0d8082bc6f957f9db0031 /main/src | |
| parent | 0c8fcf01aaacb5c50a39e236ac154332e71fe55e (diff) | |
| parent | 05b527ae7f4de56dff5f560e26a5ce7fb307db0d (diff) | |
| download | cgeo-930b4d8718b767e20a031bb5bd37fe81bd024502.zip cgeo-930b4d8718b767e20a031bb5bd37fe81bd024502.tar.gz cgeo-930b4d8718b767e20a031bb5bd37fe81bd024502.tar.bz2 | |
Merge pull request #961 from RoadRunner-/master
Implementation for #957: Open cache from waypoint
Diffstat (limited to 'main/src')
| -rw-r--r-- | main/src/cgeo/geocaching/cgeowaypoint.java | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/main/src/cgeo/geocaching/cgeowaypoint.java b/main/src/cgeo/geocaching/cgeowaypoint.java index 218c61b..3d35189 100644 --- a/main/src/cgeo/geocaching/cgeowaypoint.java +++ b/main/src/cgeo/geocaching/cgeowaypoint.java @@ -27,6 +27,7 @@ public class cgeowaypoint extends AbstractActivity { private static final int MENU_ID_NAVIGATION = 0; private static final int MENU_ID_CACHES_AROUND = 5; private static final int MENU_ID_DEFAULT_NAVIGATION = 2; + private static final int MENU_ID_OPEN_GEOCACHE = 6; private cgWaypoint waypoint = null; private String geocode = null; private int id = -1; @@ -214,6 +215,7 @@ public class cgeowaypoint extends AbstractActivity { addNavigationMenuItems(subMenu); menu.add(0, MENU_ID_CACHES_AROUND, 0, res.getString(R.string.cache_menu_around)).setIcon(android.R.drawable.ic_menu_rotate); // caches around + menu.add(0, MENU_ID_OPEN_GEOCACHE, 0, res.getString(R.string.waypoint_menu_open_cache)).setIcon(android.R.drawable.ic_menu_mylocation); // open geocache return true; } @@ -231,6 +233,9 @@ public class cgeowaypoint extends AbstractActivity { menu.findItem(MENU_ID_NAVIGATION).setVisible(visible); menu.findItem(MENU_ID_DEFAULT_NAVIGATION).setVisible(visible); menu.findItem(MENU_ID_CACHES_AROUND).setVisible(visible); + + boolean openGeocache = StringUtils.isEmpty(geocode) && StringUtils.isNotEmpty(waypoint.getGeocode()); + menu.findItem(MENU_ID_OPEN_GEOCACHE).setVisible(openGeocache); } catch (Exception e) { // nothing } @@ -247,6 +252,9 @@ public class cgeowaypoint extends AbstractActivity { } else if (menuItem == MENU_ID_CACHES_AROUND) { cachesAround(); return true; + } else if (menuItem == MENU_ID_OPEN_GEOCACHE) { + goToGeocache(); + return true; } return NavigationAppFactory.onMenuItemSelected(item, geo, this, null, null, waypoint, null); @@ -262,6 +270,16 @@ public class cgeowaypoint extends AbstractActivity { finish(); } + private void goToGeocache() { + if (waypoint == null || waypoint.getGeocode() == null) { + showToast(res.getString(R.string.err_waypoint_open_cache_failed)); + } + + CacheDetailActivity.startActivity(this, waypoint.getGeocode()); + + finish(); + } + private class loadWaypoint extends Thread { @Override |
