diff options
| author | Bananeweizen <Bananeweizen@gmx.de> | 2012-04-19 11:50:45 -0700 |
|---|---|---|
| committer | Bananeweizen <Bananeweizen@gmx.de> | 2012-04-19 11:50:45 -0700 |
| commit | 1c1690f54f2b40a36328f12d4560bb7bc37f9805 (patch) | |
| tree | 82fb864c6924c3a96b0825e77cedd1fea73672cb | |
| parent | 217949c71a751c0744497c28e42ecd6007cb0de3 (diff) | |
| parent | 784f3ed0e276183861fb1d47944b0a02ad7ed9a6 (diff) | |
| download | cgeo-1c1690f54f2b40a36328f12d4560bb7bc37f9805.zip cgeo-1c1690f54f2b40a36328f12d4560bb7bc37f9805.tar.gz cgeo-1c1690f54f2b40a36328f12d4560bb7bc37f9805.tar.bz2 | |
Merge pull request #1418 from rsudev/issue1410
Fix #1410, display warning on invalid map file
| -rw-r--r-- | main/res/values/strings.xml | 2 | ||||
| -rw-r--r-- | main/src/cgeo/geocaching/Settings.java | 5 | ||||
| -rw-r--r-- | main/src/cgeo/geocaching/cgeoinit.java | 3 | ||||
| -rw-r--r-- | main/src/cgeo/geocaching/maps/mapsforge/MapsforgeMapProvider.java | 6 | ||||
| -rw-r--r-- | main/src/cgeo/geocaching/maps/mapsforge/MapsforgeMapView.java | 16 |
5 files changed, 25 insertions, 7 deletions
diff --git a/main/res/values/strings.xml b/main/res/values/strings.xml index ead1b80..292206e 100644 --- a/main/res/values/strings.xml +++ b/main/res/values/strings.xml @@ -218,7 +218,7 @@ <string name="warn_search_help_tb">Enter the code for a trackable. For example \"TB29QMZ\".</string> <string name="warn_log_text_fill">Please fill in text for your log.</string> <string name="warn_load_images">c:geo failed to load images.</string> - + <string name="warn_invalid_mapfile">The selected map file is not a valid mapsforge version 0.2.4 map file.\nOffline maps are not available.</string> <string name="info_log_posted">c:geo successfully submitted the log.</string> <string name="info_log_saved">c:geo successfully saved the log.</string> diff --git a/main/src/cgeo/geocaching/Settings.java b/main/src/cgeo/geocaching/Settings.java index 872c3f6..7fdf651 100644 --- a/main/src/cgeo/geocaching/Settings.java +++ b/main/src/cgeo/geocaching/Settings.java @@ -5,6 +5,7 @@ import cgeo.geocaching.enumerations.LiveMapStrategy.Strategy; import cgeo.geocaching.geopoint.Geopoint; import cgeo.geocaching.maps.MapProviderFactory; import cgeo.geocaching.maps.interfaces.MapProvider; +import cgeo.geocaching.maps.mapsforge.MapsforgeMapProvider; import cgeo.geocaching.utils.CryptUtils; import org.apache.commons.lang3.StringUtils; @@ -441,6 +442,10 @@ public final class Settings { return commitResult; } + public static boolean isValidMapFile(final String mapFileIn) { + return MapsforgeMapProvider.isValidMapFile(mapFileIn); + } + public static coordInputFormatEnum getCoordInputFormat() { return coordInputFormatEnum.fromInt(sharedPrefs.getInt(KEY_COORD_INPUT_FORMAT, 0)); } diff --git a/main/src/cgeo/geocaching/cgeoinit.java b/main/src/cgeo/geocaching/cgeoinit.java index 6493582..2269ad7 100644 --- a/main/src/cgeo/geocaching/cgeoinit.java +++ b/main/src/cgeo/geocaching/cgeoinit.java @@ -895,6 +895,9 @@ public class cgeoinit extends AbstractActivity { if (resultCode == RESULT_OK) { if (data.hasExtra("mapfile")) { Settings.setMapFile(data.getStringExtra("mapfile")); + if (!Settings.isValidMapFile(Settings.getMapFile())) { + showToast(res.getString(R.string.warn_invalid_mapfile)); + } } } initMapfileEdittext(true); diff --git a/main/src/cgeo/geocaching/maps/mapsforge/MapsforgeMapProvider.java b/main/src/cgeo/geocaching/maps/mapsforge/MapsforgeMapProvider.java index 1929b7b..2e0cc45 100644 --- a/main/src/cgeo/geocaching/maps/mapsforge/MapsforgeMapProvider.java +++ b/main/src/cgeo/geocaching/maps/mapsforge/MapsforgeMapProvider.java @@ -12,6 +12,8 @@ import cgeo.geocaching.maps.interfaces.GeoPointImpl; import cgeo.geocaching.maps.interfaces.MapProvider; import cgeo.geocaching.maps.interfaces.OtherCachersOverlayItemImpl; +import org.mapsforge.android.maps.MapDatabase; + import android.app.Activity; import android.content.Context; import android.content.res.Resources; @@ -91,4 +93,8 @@ public class MapsforgeMapProvider implements MapProvider { return baseItem; } + public static boolean isValidMapFile(String mapFileIn) { + return MapDatabase.isValidMapFile(mapFileIn); + } + } diff --git a/main/src/cgeo/geocaching/maps/mapsforge/MapsforgeMapView.java b/main/src/cgeo/geocaching/maps/mapsforge/MapsforgeMapView.java index d66088e..048f7a2 100644 --- a/main/src/cgeo/geocaching/maps/mapsforge/MapsforgeMapView.java +++ b/main/src/cgeo/geocaching/maps/mapsforge/MapsforgeMapView.java @@ -1,5 +1,6 @@ package cgeo.geocaching.maps.mapsforge; +import cgeo.geocaching.R; import cgeo.geocaching.Settings; import cgeo.geocaching.maps.CachesOverlay; import cgeo.geocaching.maps.OtherCachersOverlay; @@ -16,7 +17,6 @@ import cgeo.geocaching.maps.interfaces.OverlayImpl.overlayType; import cgeo.geocaching.utils.Log; import org.mapsforge.android.maps.GeoPoint; -import org.mapsforge.android.maps.MapDatabase; import org.mapsforge.android.maps.MapView; import org.mapsforge.android.maps.MapViewMode; import org.mapsforge.android.maps.Overlay; @@ -30,6 +30,7 @@ import android.util.AttributeSet; import android.view.GestureDetector; import android.view.GestureDetector.SimpleOnGestureListener; import android.view.MotionEvent; +import android.widget.Toast; public class MapsforgeMapView extends MapView implements MapViewImpl { private GestureDetector gestureDetector; @@ -170,11 +171,14 @@ public class MapsforgeMapView extends MapView implements MapViewImpl { setMapViewMode(MapViewMode.OPENCYCLEMAP_TILE_DOWNLOAD); break; case MapsforgeMapProvider.OFFLINE: - if (MapDatabase.isValidMapFile(Settings.getMapFile())) { - setMapViewMode(MapViewMode.CANVAS_RENDERER); - super.setMapFile(Settings.getMapFile()); - } else { - setMapViewMode(MapViewMode.MAPNIK_TILE_DOWNLOAD); + setMapViewMode(MapViewMode.CANVAS_RENDERER); + super.setMapFile(Settings.getMapFile()); + if (!Settings.isValidMapFile(Settings.getMapFile())) { + Toast.makeText( + getContext(), + getContext().getResources().getString(R.string.warn_invalid_mapfile), + Toast.LENGTH_LONG) + .show(); } break; default: |
