diff options
| -rw-r--r-- | main/res/values-fr/strings.xml | 1 | ||||
| -rw-r--r-- | main/res/values/strings.xml | 1 | ||||
| -rw-r--r-- | main/src/cgeo/geocaching/cgBase.java | 35 | ||||
| -rw-r--r-- | tests/src/cgeo/geocaching/ParserTest.java | 2 | ||||
| -rw-r--r-- | tests/src/cgeo/geocaching/cgeoApplicationTest.java | 8 |
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()); |
