aboutsummaryrefslogtreecommitdiffstats
path: root/main/src/cgeo
diff options
context:
space:
mode:
authorMarco Jacob <mjacob@union06.de>2013-05-27 21:42:03 +0200
committerMarco Jacob <mjacob@union06.de>2013-05-27 21:42:03 +0200
commit90ab88a43a124368cdef5e766f7e028e38848158 (patch)
tree1c4bca90a5e4b66c072dbdd2f4ce1949cbc83c6a /main/src/cgeo
parent10220a97faec312192d2aa2a982636dd8df5139b (diff)
downloadcgeo-90ab88a43a124368cdef5e766f7e028e38848158.zip
cgeo-90ab88a43a124368cdef5e766f7e028e38848158.tar.gz
cgeo-90ab88a43a124368cdef5e766f7e028e38848158.tar.bz2
fixes #2771 - parsed cache from GCParser should be set detailed before adding
Diffstat (limited to 'main/src/cgeo')
-rw-r--r--main/src/cgeo/geocaching/Geocache.java8
-rw-r--r--main/src/cgeo/geocaching/connector/gc/GCParser.java3
2 files changed, 9 insertions, 2 deletions
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;
}