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.java42
1 files changed, 28 insertions, 14 deletions
diff --git a/main/src/cgeo/geocaching/TrackableActivity.java b/main/src/cgeo/geocaching/TrackableActivity.java
index cd34d7f..dadc37f 100644
--- a/main/src/cgeo/geocaching/TrackableActivity.java
+++ b/main/src/cgeo/geocaching/TrackableActivity.java
@@ -342,7 +342,7 @@ public class TrackableActivity extends AbstractViewPagerActivity<TrackableActivi
case DETAILS:
return new DetailsViewCreator();
case LOGS:
- return new TrackableLogsViewCreator(this, trackable);
+ return new TrackableLogsViewCreator(this);
}
throw new IllegalStateException(); // cannot happen as long as switch case is enum complete
}
@@ -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()) {
@@ -594,4 +594,18 @@ public class TrackableActivity extends AbstractViewPagerActivity<TrackableActivi
return false;
}
+ @Override
+ protected void onResume() {
+ super.onResume();
+ // refresh the logs view after coming back from logging a trackable
+ if (trackable != null) {
+ final Trackable updatedTrackable = DataStore.loadTrackable(trackable.getGeocode());
+ trackable.setLogs(updatedTrackable.getLogs());
+ reinitializeViewPager();
+ }
+ }
+
+ public Trackable getTrackable() {
+ return trackable;
+ }
}