diff --git a/app/src/main/java/de/tadris/fitness/activity/SettingsActivity.java b/app/src/main/java/de/tadris/fitness/activity/SettingsActivity.java
index d36f871..1841eab 100644
--- a/app/src/main/java/de/tadris/fitness/activity/SettingsActivity.java
+++ b/app/src/main/java/de/tadris/fitness/activity/SettingsActivity.java
@@ -22,7 +22,6 @@ package de.tadris.fitness.activity;
import android.Manifest;
import android.app.ActionBar;
import android.app.AlertDialog;
-import android.content.DialogInterface;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.pm.PackageManager;
@@ -44,7 +43,6 @@ import android.widget.NumberPicker;
import androidx.annotation.StringRes;
import androidx.core.app.ActivityCompat;
-import androidx.core.app.NavUtils;
import androidx.core.content.FileProvider;
import java.io.BufferedInputStream;
@@ -53,7 +51,6 @@ import java.io.FileNotFoundException;
import de.tadris.fitness.R;
import de.tadris.fitness.util.export.Exporter;
-import de.tadris.fitness.util.gpx.GpxExporter;
import de.tadris.fitness.util.unit.UnitUtils;
import de.tadris.fitness.view.ProgressDialogController;
@@ -160,6 +157,7 @@ public class SettingsActivity extends PreferenceActivity {
addPreferencesFromResource(R.xml.preferences_main);
bindPreferenceSummaryToValue(findPreference("unitSystem"));
+ bindPreferenceSummaryToValue(findPreference("mapStyle"));
findPreference("weight").setOnPreferenceClickListener(preference -> showWeightPicker());
findPreference("import").setOnPreferenceClickListener(preference -> showImportDialog());
diff --git a/app/src/main/java/de/tadris/fitness/map/MapManager.java b/app/src/main/java/de/tadris/fitness/map/MapManager.java
index 5c700f3..786c7c4 100644
--- a/app/src/main/java/de/tadris/fitness/map/MapManager.java
+++ b/app/src/main/java/de/tadris/fitness/map/MapManager.java
@@ -19,6 +19,8 @@
package de.tadris.fitness.map;
+import android.preference.PreferenceManager;
+
import org.mapsforge.core.model.LatLong;
import org.mapsforge.map.android.graphics.AndroidGraphicFactory;
import org.mapsforge.map.android.util.AndroidUtil;
@@ -27,20 +29,22 @@ import org.mapsforge.map.layer.cache.TileCache;
import org.mapsforge.map.layer.download.TileDownloadLayer;
import de.tadris.fitness.map.tilesource.FitoTrackTileSource;
+import de.tadris.fitness.map.tilesource.HumanitarianTileSource;
import de.tadris.fitness.map.tilesource.MapnikTileSource;
+import de.tadris.fitness.map.tilesource.ThunderforestTileSource;
import de.tadris.fitness.map.tilesource.TileSources;
public class MapManager {
public static TileDownloadLayer setupMap(MapView mapView, TileSources.Purpose purpose){
FitoTrackTileSource tileSource;
- switch (purpose){
- /*case OUTDOOR: tileSource= ThunderforestTileSource.OUTDOORS; break;
- case CYCLING: tileSource= ThunderforestTileSource.CYLE_MAP; break;*/
- case DEFAULT:
- default:
- tileSource= MapnikTileSource.INSTANCE; break;
+ String chosenTileLayer= PreferenceManager.getDefaultSharedPreferences(mapView.getContext()).getString("mapStyle", "osm.mapnik");
+ switch (chosenTileLayer){
+ case "osm.humanitarian": tileSource= HumanitarianTileSource.INSTANCE; break;
+ case "thunderforest.outdoors": tileSource= ThunderforestTileSource.OUTDOORS; break;
+ case "thunderforest.cycle": tileSource= ThunderforestTileSource.CYLE_MAP; break;
+ default: tileSource= MapnikTileSource.INSTANCE; break; // Inclusive "osm.mapnik"
}
tileSource.setUserAgent("mapsforge-android");
diff --git a/app/src/main/res/values-de/map_layers.xml b/app/src/main/res/values-de/map_layers.xml
new file mode 100644
index 0000000..311b125
--- /dev/null
+++ b/app/src/main/res/values-de/map_layers.xml
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+ - Mapnik\nStandard OSM Kartenstil
+ - Humanitarian\nSchöne Karte, aber manchmal nicht verfügbar
+ - Outdoors\nLimitierter Zugriff
+ - Cyclemap\nLimitierter Zugriff
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml
index f4b1a5a..ccdc23e 100644
--- a/app/src/main/res/values-de/strings.xml
+++ b/app/src/main/res/values-de/strings.xml
@@ -94,4 +94,6 @@
Bitte aktiviere GPS, damit dein Workout aufgezeichnet werden kann.
Aufstieg
Abstieg
+ Daten
+ Kartenstil
\ No newline at end of file
diff --git a/app/src/main/res/values/map_layers.xml b/app/src/main/res/values/map_layers.xml
new file mode 100644
index 0000000..e08ae72
--- /dev/null
+++ b/app/src/main/res/values/map_layers.xml
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+ - Mapnik\nDefault OSM Mapstyle
+ - Humanitarian\nClean map but sometimes not available
+ - Outdoors\nLimited access
+ - Cyclemap\nLimited access
+
+
+
+ - osm.mapnik
+ - osm.humanitarian
+ - thunderforest.outdoors
+ - thunderforest.cycle
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index c3dc599..3fe8b31 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -112,4 +112,6 @@
Import Data Backup
Restore a taken backup
GPS
+ Data
+ Map Style
diff --git a/app/src/main/res/values/unit_systems.xml b/app/src/main/res/values/unit_systems.xml
index 40df41a..4513bf0 100644
--- a/app/src/main/res/values/unit_systems.xml
+++ b/app/src/main/res/values/unit_systems.xml
@@ -22,7 +22,7 @@
- Metric
- - Metric Physical (m/s)
+ - Metric with m/s
- Imperial
- Imperial with meters
diff --git a/app/src/main/res/xml/preferences_main.xml b/app/src/main/res/xml/preferences_main.xml
index e8a0ec8..dd24e5a 100644
--- a/app/src/main/res/xml/preferences_main.xml
+++ b/app/src/main/res/xml/preferences_main.xml
@@ -1,11 +1,31 @@
+
+
+ android:title="@string/pref_unit_system"
+ android:defaultValue="1" />
-
-
+
+
+
+
+
+
+
+
\ No newline at end of file