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