diff options
| author | Marco Jacob <mjacob@union06.de> | 2012-01-14 21:36:11 +0100 |
|---|---|---|
| committer | Marco Jacob <mjacob@union06.de> | 2012-01-14 21:36:11 +0100 |
| commit | e4d3d70d23ff5d3c57888768286aa292c084d3ce (patch) | |
| tree | 0ab7b31e8cb205e835244503f647edffb50207ff /main | |
| parent | 7fcca178c44c08aae6aa81516b1090401a7d2658 (diff) | |
| download | cgeo-e4d3d70d23ff5d3c57888768286aa292c084d3ce.zip cgeo-e4d3d70d23ff5d3c57888768286aa292c084d3ce.tar.gz cgeo-e4d3d70d23ff5d3c57888768286aa292c084d3ce.tar.bz2 | |
merged with cgeo upstream
Diffstat (limited to 'main')
| -rw-r--r-- | main/res/values/strings.xml | 1 | ||||
| -rw-r--r-- | main/src/cgeo/geocaching/StaticMapsProvider.java | 38 | ||||
| -rw-r--r-- | main/src/cgeo/geocaching/cgeoinit.java | 10 |
3 files changed, 29 insertions, 20 deletions
diff --git a/main/res/values/strings.xml b/main/res/values/strings.xml index 243d460..8d590e6 100644 --- a/main/res/values/strings.xml +++ b/main/res/values/strings.xml @@ -938,6 +938,7 @@ · <a href="http://github.com/koem">Karsten Priegnitz</a> (code, artwork computation)\n · <a href="http://www.geocaching.com/email/?guid=d11a3e3d-7db0-4d43-87f2-7893238844a6">Lineflyer</a> (tester)\n · Ludovic Valente (localization FR)\n + · marco-jacob (code, loc. DE)\n · MichielK (code, loc. NL)\n · mucek4 (code, open source project leader)\n · ncorreia (code, localization PT)\n diff --git a/main/src/cgeo/geocaching/StaticMapsProvider.java b/main/src/cgeo/geocaching/StaticMapsProvider.java index 490df91..3a3da0c 100644 --- a/main/src/cgeo/geocaching/StaticMapsProvider.java +++ b/main/src/cgeo/geocaching/StaticMapsProvider.java @@ -51,11 +51,10 @@ public class StaticMapsProvider { } public static void downloadMaps(cgCache cache, Activity activity) { - if (!Settings.isStoreOfflineMaps() || cache.getCoords() == null || StringUtils.isBlank(cache.getGeocode())) { + if ((!Settings.isStoreOfflineMaps() && !Settings.isStoreOfflineWpMaps()) || StringUtils.isBlank(cache.getGeocode())) { return; } - final String latlonMap = cache.getCoords().format(Format.LAT_LON_DECDEGREE_COMMA); final Display display = ((WindowManager) activity.getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay(); final int maxWidth = display.getWidth() - 25; final int maxHeight = display.getHeight() - 25; @@ -66,29 +65,28 @@ public class StaticMapsProvider { edge = maxHeight; } - final StringBuilder waypoints = new StringBuilder(); - if (cache.hasWaypoints()) { - for (cgWaypoint waypoint : cache.getWaypoints()) { - if (waypoint.getCoords() == null) { - continue; + if (Settings.isStoreOfflineMaps() && cache.getCoords() != null) { + final String latlonMap = cache.getCoords().format(Format.LAT_LON_DECDEGREE_COMMA); + final StringBuilder waypoints = new StringBuilder(); + if (cache.hasWaypoints()) { + for (cgWaypoint waypoint : cache.getWaypoints()) { + if (waypoint.getCoords() == null) { + continue; + } + String wpMarkerUrl = getWpMarkerUrl(waypoint); + waypoints.append("&markers=icon%3A"); + waypoints.append(wpMarkerUrl); + waypoints.append("%7C"); + waypoints.append(waypoint.getCoords().format(Format.LAT_LON_DECDEGREE_COMMA)); } - String wpMarkerUrl = getWpMarkerUrl(waypoint); - waypoints.append("&markers=icon%3A"); - waypoints.append(wpMarkerUrl); - waypoints.append("%7C"); - waypoints.append(waypoint.getCoords().format(Format.LAT_LON_DECDEGREE_COMMA)); } + // download map images in separate background thread for higher performance + final String cacheMarkerUrl = getCacheMarkerUrl(cache); + downloadMaps(cache, cacheMarkerUrl, "", latlonMap, edge, waypoints.toString()); } - // download map images in separate background thread for higher performance - final String cacheMarkerUrl = getCacheMarkerUrl(cache); - downloadMaps(cache, cacheMarkerUrl, "", latlonMap, edge, waypoints.toString()); - // download static map for current waypoints - if (!Settings.isStoreOfflineWpMaps()) { - return; - } - if (CollectionUtils.isNotEmpty(cache.getWaypoints())) { + if (Settings.isStoreOfflineWpMaps() && CollectionUtils.isNotEmpty(cache.getWaypoints())) { for (cgWaypoint waypoint : cache.getWaypoints()) { if (waypoint.getCoords() == null) { continue; diff --git a/main/src/cgeo/geocaching/cgeoinit.java b/main/src/cgeo/geocaching/cgeoinit.java index 8b72c5c..09f2396 100644 --- a/main/src/cgeo/geocaching/cgeoinit.java +++ b/main/src/cgeo/geocaching/cgeoinit.java @@ -464,6 +464,16 @@ public class cgeoinit extends AbstractActivity { } }); + final CheckBox offlineWpButton = (CheckBox) findViewById(R.id.offline_wp); + offlineWpButton.setChecked(Settings.isStoreOfflineWpMaps()); + offlineWpButton.setOnClickListener(new View.OnClickListener() { + + @Override + public void onClick(View v) { + Settings.setStoreOfflineWpMaps(offlineWpButton.isChecked()); + } + }); + final CheckBox saveLogImgButton = (CheckBox) findViewById(R.id.save_log_img); saveLogImgButton.setChecked(Settings.isStoreLogImages()); saveLogImgButton.setOnClickListener(new View.OnClickListener() { |
