diff options
author | Bananeweizen <bananeweizen@gmx.de> | 2013-10-13 12:13:26 +0200 |
---|---|---|
committer | Bananeweizen <bananeweizen@gmx.de> | 2013-10-13 12:13:26 +0200 |
commit | ed2eceba1f6d06106e6289b0b5c3b9fbe45f4d41 (patch) | |
tree | 5ef2787413ec0a34311ac34ccbcc0f7f669d36dd | |
parent | 9227d76bca72996b67abadf9587862d0ff163d67 (diff) | |
download | cgeo-ed2eceba1f6d06106e6289b0b5c3b9fbe45f4d41.zip cgeo-ed2eceba1f6d06106e6289b0b5c3b9fbe45f4d41.tar.gz cgeo-ed2eceba1f6d06106e6289b0b5c3b9fbe45f4d41.tar.bz2 |
new: show cache, if geokrety is currently placed there
-rw-r--r-- | main/src/cgeo/geocaching/TrackableActivity.java | 11 | ||||
-rw-r--r-- | main/src/cgeo/geocaching/connector/trackable/GeokretyParser.java | 14 |
2 files changed, 21 insertions, 4 deletions
diff --git a/main/src/cgeo/geocaching/TrackableActivity.java b/main/src/cgeo/geocaching/TrackableActivity.java index a713093..69123fe 100644 --- a/main/src/cgeo/geocaching/TrackableActivity.java +++ b/main/src/cgeo/geocaching/TrackableActivity.java @@ -419,7 +419,16 @@ public class TrackableActivity extends AbstractViewPagerActivity<TrackableActivi spotted.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View arg0) { - CacheDetailActivity.startActivityGuid(TrackableActivity.this, trackable.getSpottedGuid(), trackable.getSpottedName()); + if (StringUtils.isNotBlank(trackable.getSpottedGuid())) { + CacheDetailActivity.startActivityGuid(TrackableActivity.this, trackable.getSpottedGuid(), trackable.getSpottedName()); + } + else { + // for geokrety we only know the cache geocode + final String cacheCode = trackable.getSpottedName(); + if (ConnectorFactory.canHandle(cacheCode)) { + CacheDetailActivity.startActivity(TrackableActivity.this, cacheCode); + } + } } }); } else if (Trackable.SPOTTED_USER == trackable.getSpottedType()) { diff --git a/main/src/cgeo/geocaching/connector/trackable/GeokretyParser.java b/main/src/cgeo/geocaching/connector/trackable/GeokretyParser.java index 9f79896..67180b3 100644 --- a/main/src/cgeo/geocaching/connector/trackable/GeokretyParser.java +++ b/main/src/cgeo/geocaching/connector/trackable/GeokretyParser.java @@ -35,15 +35,23 @@ public class GeokretyParser { @Override public void start(Attributes attributes) { try { - if (attributes.getIndex("id") > -1) { + final int indexId = attributes.getIndex("id"); + if (indexId > -1) { trackable.setGeocode(geocode(Integer.valueOf(attributes.getValue("id")))); } - if (attributes.getIndex("dist") > -1) { + final int indexDist = attributes.getIndex("dist"); + if (indexDist > -1) { trackable.setDistance(Float.valueOf(attributes.getValue("dist"))); } - if (attributes.getIndex("type") > -1) { + final int indexType = attributes.getIndex("type"); + if (indexType > -1) { trackable.setType(getType(Integer.valueOf(attributes.getValue("type")))); } + final int indexWaypoint = attributes.getIndex("waypoint"); + if (indexWaypoint > -1) { + trackable.setSpottedName(attributes.getValue(indexWaypoint)); + trackable.setSpottedType(Trackable.SPOTTED_CACHE); + } } catch (final NumberFormatException e) { Log.e("Parsing geokret", e); } |