diff options
Diffstat (limited to 'main/src/cgeo/geocaching/TrackableActivity.java')
| -rw-r--r-- | main/src/cgeo/geocaching/TrackableActivity.java | 13 |
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()) { |
