From e2e0efea3285188690ce2930d324aa5aad7cacac Mon Sep 17 00:00:00 2001 From: jannis Date: Tue, 10 Sep 2019 18:23:50 +0200 Subject: [PATCH] #15 Choose the map layers in settings --- .../fitness/activity/SettingsActivity.java | 4 +- .../de/tadris/fitness/map/MapManager.java | 16 +++--- app/src/main/res/values-de/map_layers.xml | 30 ++++++++++++ app/src/main/res/values-de/strings.xml | 2 + app/src/main/res/values/map_layers.xml | 37 ++++++++++++++ app/src/main/res/values/strings.xml | 2 + app/src/main/res/values/unit_systems.xml | 2 +- app/src/main/res/xml/preferences_main.xml | 49 +++++++++++++++---- 8 files changed, 123 insertions(+), 19 deletions(-) create mode 100644 app/src/main/res/values-de/map_layers.xml create mode 100644 app/src/main/res/values/map_layers.xml 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