From 90ab88a43a124368cdef5e766f7e028e38848158 Mon Sep 17 00:00:00 2001 From: Marco Jacob Date: Mon, 27 May 2013 21:42:03 +0200 Subject: fixes #2771 - parsed cache from GCParser should be set detailed before adding --- main/src/cgeo/geocaching/Geocache.java | 8 ++++++-- main/src/cgeo/geocaching/connector/gc/GCParser.java | 3 +++ 2 files changed, 9 insertions(+), 2 deletions(-) (limited to 'main/src') diff --git a/main/src/cgeo/geocaching/Geocache.java b/main/src/cgeo/geocaching/Geocache.java index 5286d1c..304f940 100644 --- a/main/src/cgeo/geocaching/Geocache.java +++ b/main/src/cgeo/geocaching/Geocache.java @@ -175,7 +175,9 @@ public class Geocache implements ICache, IWaypoint { } /** - * Gather missing information from another cache object. + * Gather missing information for new Geocache object from the stored Geocache object. + * This is called in the new Geocache parsed from website to set information not yet + * parsed. * * @param other * the other version, or null if non-existent @@ -187,6 +189,8 @@ public class Geocache implements ICache, IWaypoint { } updated = System.currentTimeMillis(); + // if parsed cache is not yet detailed and stored is, the information of + // the parsed cache will be overwritten if (!detailed && (other.detailed || zoomlevel < other.zoomlevel)) { detailed = other.detailed; detailedUpdate = other.detailedUpdate; @@ -206,7 +210,7 @@ public class Geocache implements ICache, IWaypoint { onWatchlist = other.onWatchlist; logOffline = other.logOffline; finalDefined = other.finalDefined; - // archived is kept from the most recent data + archived = other.archived; } /* diff --git a/main/src/cgeo/geocaching/connector/gc/GCParser.java b/main/src/cgeo/geocaching/connector/gc/GCParser.java index 3334c42..659f0d0 100644 --- a/main/src/cgeo/geocaching/connector/gc/GCParser.java +++ b/main/src/cgeo/geocaching/connector/gc/GCParser.java @@ -330,9 +330,11 @@ public abstract class GCParser { static SearchResult parseCache(final String page, final CancellableHandler handler) { final SearchResult searchResult = parseCacheFromText(page, handler); + // attention: parseCacheFromText already stores implicitely through searchResult.addCache if (searchResult != null && !searchResult.getGeocodes().isEmpty()) { final Geocache cache = searchResult.getFirstCacheFromResult(LoadFlags.LOAD_CACHE_OR_DB); getExtraOnlineInfo(cache, page, handler); + // too late: it is already stored through parseCacheFromText cache.setDetailedUpdatedNow(); if (CancellableHandler.isCancelled(handler)) { return null; @@ -726,6 +728,7 @@ public abstract class GCParser { return searchResult; } + cache.setDetailedUpdatedNow(); searchResult.addCache(cache); return searchResult; } -- cgit v1.1