aboutsummaryrefslogtreecommitdiffstats
path: root/main
diff options
context:
space:
mode:
Diffstat (limited to 'main')
-rw-r--r--main/src/cgeo/geocaching/TrackableActivity.java26
-rw-r--r--main/src/cgeo/geocaching/ui/logs/TrackableLogsViewCreator.java19
2 files changed, 24 insertions, 21 deletions
diff --git a/main/src/cgeo/geocaching/TrackableActivity.java b/main/src/cgeo/geocaching/TrackableActivity.java
index eacbc75..dadc37f 100644
--- a/main/src/cgeo/geocaching/TrackableActivity.java
+++ b/main/src/cgeo/geocaching/TrackableActivity.java
@@ -442,21 +442,21 @@ public class TrackableActivity extends AbstractViewPagerActivity<TrackableActivi
final TextView spotted = details.add(R.string.trackable_spotted, text.toString());
spotted.setClickable(true);
if (Trackable.SPOTTED_CACHE == trackable.getSpottedType()) {
- spotted.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(final View arg0) {
- 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);
+ spotted.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(final View arg0) {
+ final String cacheGeocode = DataStore.getGeocodeForGuid(trackable.getSpottedGuid());
+ if (StringUtils.isNotBlank(cacheGeocode)) {
+ CacheDetailActivity.startActivity(TrackableActivity.this, cacheGeocode, 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()) {
spotted.setOnClickListener(new UserNameClickListener(trackable, Html.fromHtml(trackable.getSpottedName()).toString()));
} else if (Trackable.SPOTTED_OWNER == trackable.getSpottedType()) {
diff --git a/main/src/cgeo/geocaching/ui/logs/TrackableLogsViewCreator.java b/main/src/cgeo/geocaching/ui/logs/TrackableLogsViewCreator.java
index 24c8871..ecb6469 100644
--- a/main/src/cgeo/geocaching/ui/logs/TrackableLogsViewCreator.java
+++ b/main/src/cgeo/geocaching/ui/logs/TrackableLogsViewCreator.java
@@ -1,6 +1,7 @@
package cgeo.geocaching.ui.logs;
import cgeo.geocaching.CacheDetailActivity;
+import cgeo.geocaching.DataStore;
import cgeo.geocaching.LogEntry;
import cgeo.geocaching.Trackable;
import cgeo.geocaching.TrackableActivity;
@@ -49,14 +50,16 @@ public class TrackableLogsViewCreator extends LogsViewCreator {
holder.countOrLocation.setVisibility(View.GONE);
} else {
holder.countOrLocation.setText(Html.fromHtml(log.cacheName));
- final String cacheGuid = log.cacheGuid;
- final String cacheName = log.cacheName;
- holder.countOrLocation.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(final View arg0) {
- CacheDetailActivity.startActivityGuid(activity, cacheGuid, Html.fromHtml(cacheName).toString());
- }
- });
+ final String cacheCode = DataStore.getGeocodeForGuid(log.cacheGuid);
+ if (cacheCode != null) {
+ final String cacheName = log.cacheName;
+ holder.countOrLocation.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(final View arg0) {
+ CacheDetailActivity.startActivity(activity, cacheCode, Html.fromHtml(cacheName).toString());
+ }
+ });
+ }
}
}