aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--main/res/values-fr/strings.xml1
-rw-r--r--main/res/values/strings.xml1
-rw-r--r--main/src/cgeo/geocaching/cgBase.java35
-rw-r--r--tests/src/cgeo/geocaching/ParserTest.java2
-rw-r--r--tests/src/cgeo/geocaching/cgeoApplicationTest.java8
5 files changed, 29 insertions, 18 deletions
diff --git a/main/res/values-fr/strings.xml b/main/res/values-fr/strings.xml
index 8defca7..12ff333 100644
--- a/main/res/values-fr/strings.xml
+++ b/main/res/values-fr/strings.xml
@@ -480,6 +480,7 @@
<string name="cache_dialog_loading_details_status_logs">Chargement des entrées de carnets</string>
<string name="cache_dialog_loading_details_status_waypoints">Traitement des points intermédiaires</string>
<string name="cache_dialog_loading_details_status_gcvote">Chargement des votes</string>
+ <string name="cache_dialog_loading_details_status_elevation">Chargement de l\'altitude</string>
<string name="cache_dialog_loading_details_status_render">Préparation de la page</string>
<string name="cache_dialog_loading_description">Chargement de la description…</string>
<string name="cache_dialog_offline_save_title">Hors ligne</string>
diff --git a/main/res/values/strings.xml b/main/res/values/strings.xml
index d5ba832..8bb16c2 100644
--- a/main/res/values/strings.xml
+++ b/main/res/values/strings.xml
@@ -490,6 +490,7 @@
<string name="cache_dialog_loading_details_status_logs">Loading logs</string>
<string name="cache_dialog_loading_details_status_waypoints">Processing waypoints</string>
<string name="cache_dialog_loading_details_status_gcvote">Loading GCVote</string>
+ <string name="cache_dialog_loading_details_status_elevation">Loading elevation data</string>
<string name="cache_dialog_loading_details_status_render">Render view</string>
<string name="cache_dialog_loading_description">Loading cache description…</string>
<string name="cache_dialog_offline_save_title">Offline</string>
diff --git a/main/src/cgeo/geocaching/cgBase.java b/main/src/cgeo/geocaching/cgBase.java
index 5775e7b..61eaaba 100644
--- a/main/src/cgeo/geocaching/cgBase.java
+++ b/main/src/cgeo/geocaching/cgBase.java
@@ -997,6 +997,18 @@ public class cgBase {
}
public static cgCacheWrap parseCache(final String page, final int reason, final Handler handler) {
+ final cgCacheWrap caches = parseCacheFromText(page, reason, handler);
+ if (!caches.cacheList.isEmpty()) {
+ final cgCache cache = caches.cacheList.get(0);
+ getExtraOnlineInfo(cache, page, handler);
+ cache.updated = System.currentTimeMillis();
+ cache.detailedUpdate = cache.updated;
+ cache.detailed = true;
+ }
+ return caches;
+ }
+
+ static cgCacheWrap parseCacheFromText(final String page, final int reason, final Handler handler) {
sendLoadProgressDetail(handler, R.string.cache_dialog_loading_details_status_details);
if (StringUtils.isBlank(page)) {
@@ -1278,11 +1290,6 @@ public class cgBase {
Log.w(Settings.tag, "cgeoBase.parseCache: Failed to parse cache log count");
}
- // cache logs
- sendLoadProgressDetail(handler, R.string.cache_dialog_loading_details_status_logs);
-
- loadLogsFromDetails(page, cache);
-
int wpBegin = 0;
int wpEnd = 0;
@@ -1411,25 +1418,27 @@ public class cgBase {
}
}
+ caches.cacheList.add(cache);
+
+ return caches;
+ }
+
+ private static void getExtraOnlineInfo(final cgCache cache, final String page, final Handler handler) {
+ sendLoadProgressDetail(handler, R.string.cache_dialog_loading_details_status_logs);
+ loadLogsFromDetails(page, cache);
+
+ sendLoadProgressDetail(handler, R.string.cache_dialog_loading_details_status_elevation);
if (cache.coords != null) {
cache.elevation = getElevation(cache.coords);
}
sendLoadProgressDetail(handler, R.string.cache_dialog_loading_details_status_gcvote);
-
final cgRating rating = GCVote.getRating(cache.guid, cache.geocode);
if (rating != null) {
cache.rating = rating.rating;
cache.votes = rating.votes;
cache.myVote = rating.myVote;
}
-
- cache.updated = System.currentTimeMillis();
- cache.detailedUpdate = System.currentTimeMillis();
- cache.detailed = true;
- caches.cacheList.add(cache);
-
- return caches;
}
/**
diff --git a/tests/src/cgeo/geocaching/ParserTest.java b/tests/src/cgeo/geocaching/ParserTest.java
index 26e5182..1f61554 100644
--- a/tests/src/cgeo/geocaching/ParserTest.java
+++ b/tests/src/cgeo/geocaching/ParserTest.java
@@ -15,7 +15,7 @@ public class ParserTest extends InstrumentationTestCase {
}
public void testOwnerDecoding() {
- cgCacheWrap caches = cgBase.parseCache(getFileContent(R.raw.gc1zxez), 0, null);
+ cgCacheWrap caches = cgBase.parseCacheFromText(getFileContent(R.raw.gc1zxez), 0, null);
assertEquals(1, caches.cacheList.size());
final cgCache cache = caches.cacheList.get(0);
assertEquals("Ms.Marple/Mr.Stringer", cache.ownerReal);
diff --git a/tests/src/cgeo/geocaching/cgeoApplicationTest.java b/tests/src/cgeo/geocaching/cgeoApplicationTest.java
index 25501cf..20743f1 100644
--- a/tests/src/cgeo/geocaching/cgeoApplicationTest.java
+++ b/tests/src/cgeo/geocaching/cgeoApplicationTest.java
@@ -59,13 +59,13 @@ public class cgeoApplicationTest extends ApplicationTestCase<cgeoapplication> {
}
/**
- * Test {@link cgBase#parseCache(String, int) with "mocked" data
+ * Test {@link cgBase#parseCacheFromText(String, int, Handler) with "mocked" data
* @param base
*/
@MediumTest
- public static void testParseCache() {
+ public static void testParseCacheFromText() {
for (MockedCache cache : RegExPerformanceTest.MOCKED_CACHES) {
- cgCacheWrap caches = cgBase.parseCache(cache.getData(), 0, null);
+ cgCacheWrap caches = cgBase.parseCacheFromText(cache.getData(), 0, null);
cgCache cacheParsed = caches.cacheList.get(0);
Assert.assertEquals(cache.getGeocode(), cacheParsed.getGeocode());
Assert.assertEquals(cache.getType(), cacheParsed.getType());
@@ -110,7 +110,7 @@ public class cgeoApplicationTest extends ApplicationTestCase<cgeoapplication> {
}
public static void testParseLocationWithLink() {
- cgCacheWrap caches = cgBase.parseCache(MockedCache.readCachePage("GCV2R9"), 0, null);
+ cgCacheWrap caches = cgBase.parseCacheFromText(MockedCache.readCachePage("GCV2R9"), 0, null);
assertEquals(1, caches.cacheList.size());
cgCache cache = caches.cacheList.get(0);
Assert.assertEquals("California, United States", cache.getLocation());