aboutsummaryrefslogtreecommitdiffstats
path: root/main/src/cgeo/geocaching/TrackableActivity.java
diff options
context:
space:
mode:
Diffstat (limited to 'main/src/cgeo/geocaching/TrackableActivity.java')
-rw-r--r--main/src/cgeo/geocaching/TrackableActivity.java13
1 files changed, 11 insertions, 2 deletions
diff --git a/main/src/cgeo/geocaching/TrackableActivity.java b/main/src/cgeo/geocaching/TrackableActivity.java
index a257b8e..69123fe 100644
--- a/main/src/cgeo/geocaching/TrackableActivity.java
+++ b/main/src/cgeo/geocaching/TrackableActivity.java
@@ -234,7 +234,7 @@ public class TrackableActivity extends AbstractViewPagerActivity<TrackableActivi
@Override
public void run() {
if (StringUtils.isNotEmpty(geocode)) {
- trackable = cgData.loadTrackable(geocode);
+ trackable = DataStore.loadTrackable(geocode);
if (trackable == null || trackable.isLoggable()) {
// iterate over the connectors as some codes may be handled by multiple connectors
@@ -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()) {