aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBananeweizen <bananeweizen@gmx.de>2013-10-13 12:13:26 +0200
committerBananeweizen <bananeweizen@gmx.de>2013-10-13 12:13:26 +0200
commited2eceba1f6d06106e6289b0b5c3b9fbe45f4d41 (patch)
tree5ef2787413ec0a34311ac34ccbcc0f7f669d36dd
parent9227d76bca72996b67abadf9587862d0ff163d67 (diff)
downloadcgeo-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.java11
-rw-r--r--main/src/cgeo/geocaching/connector/trackable/GeokretyParser.java14
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);
}