diff --git a/app/src/main/java/com/geeksville/mesh/MainActivity.kt b/app/src/main/java/com/geeksville/mesh/MainActivity.kt index 66ce9a683..287eca3f4 100644 --- a/app/src/main/java/com/geeksville/mesh/MainActivity.kt +++ b/app/src/main/java/com/geeksville/mesh/MainActivity.kt @@ -1081,6 +1081,10 @@ class MainActivity : BaseActivity(), Logging, chooseLangDialog() return true } + R.id.preferences_map_style -> { + chooseMapStyle() + return true + } else -> super.onOptionsItemSelected(item) } } @@ -1185,9 +1189,31 @@ class MainActivity : BaseActivity(), Logging, debug("Lang from prefs: $lang") builder.setSingleChoiceItems(languageLabels, languageValues.indexOf(lang)) { dialog, which -> - var lang = languageValues[which]; - debug("Set lang pref to $lang") - editor.putString("lang", lang) + val selectedLang = languageValues[which] + debug("Set lang pref to $selectedLang") + editor.putString("lang", selectedLang) + editor.apply() + dialog.dismiss() + } + val dialog = builder.create() + dialog.show() + } + + private fun chooseMapStyle() { + /// Prepare dialog and its items + val builder = MaterialAlertDialogBuilder(this) + builder.setTitle(getString(R.string.preferences_map_style)) + val mapStyles by lazy { resources.getStringArray(R.array.map_styles) } + + /// Load preferences and its value + val prefs = UIViewModel.getPreferences(this) + val editor: SharedPreferences.Editor = prefs.edit() + val mapStyleId = prefs.getInt("map_style_id", 1) + debug("mapStyleId from prefs: $mapStyleId") + + builder.setSingleChoiceItems(mapStyles, mapStyleId) { dialog, which -> + debug("Set mapStyleId pref to $which") + editor.putInt("map_style_id", which) editor.apply() dialog.dismiss() } diff --git a/app/src/main/java/com/geeksville/mesh/ui/MapFragment.kt b/app/src/main/java/com/geeksville/mesh/ui/MapFragment.kt index 70159574d..65426b528 100644 --- a/app/src/main/java/com/geeksville/mesh/ui/MapFragment.kt +++ b/app/src/main/java/com/geeksville/mesh/ui/MapFragment.kt @@ -1,6 +1,8 @@ package com.geeksville.mesh.ui import android.app.AlertDialog +import android.content.Context +import android.content.SharedPreferences import android.graphics.Color import android.os.Bundle import android.view.LayoutInflater @@ -275,7 +277,7 @@ class MapFragment : ScreenFragment("Map"), Logging { R.drawable.ic_twotone_person_pin_24 )!!.toBitmap() - map.loadStyleUri(Style.OUTDOORS) { + map.loadStyleUri(loadMapStyleFromPref()) { if (it.isStyleLoaded) { it.addSource(nodePositions) it.addImage(markerImageId, markerIcon) @@ -654,6 +656,25 @@ class MapFragment : ScreenFragment("Map"), Logging { } } } + + private fun loadMapStyleFromPref():String { + val prefs = context?.getSharedPreferences("ui-prefs", Context.MODE_PRIVATE) + val mapStyleId = prefs?.getInt("map_style_id", 1) + debug("mapStyleId from prefs: $mapStyleId") + val mapStyle = when (mapStyleId) { + 0 -> Style.MAPBOX_STREETS + 1 -> Style.OUTDOORS + 2 -> Style.LIGHT + 3 -> Style.DARK + 4 -> Style.SATELLITE + 5 -> Style.SATELLITE_STREETS + 6 -> Style.TRAFFIC_DAY + 7 -> Style.TRAFFIC_NIGHT + else -> Style.OUTDOORS + } + return mapStyle + } + } diff --git a/app/src/main/res/menu/menu_main.xml b/app/src/main/res/menu/menu_main.xml index 600836a5f..748e1b9bf 100644 --- a/app/src/main/res/menu/menu_main.xml +++ b/app/src/main/res/menu/menu_main.xml @@ -32,6 +32,10 @@ android:id="@+id/preferences_language" android:title="@string/preferences_language" app:showAsAction="withText" /> + + + + Ulice + Teren + Jasny + Ciemny + Satelita + Satelita (wraz z ulicami) + Natężenie ruchu (jasny) + Natężenie ruchu (ciemy) + + \ No newline at end of file diff --git a/app/src/main/res/values-pl/strings.xml b/app/src/main/res/values-pl/strings.xml index 4b1df3304..ca1e8b18d 100644 --- a/app/src/main/res/values-pl/strings.xml +++ b/app/src/main/res/values-pl/strings.xml @@ -137,5 +137,6 @@ Jeśli jesteś zainteresowany opłaceniem przez nas mapboxa (lub przejściem do Zezwól (pokaże okno dialogowe) Język (wymagany restart) Domyślny systemu + Typ map Ponów diff --git a/app/src/main/res/values/arrays.xml b/app/src/main/res/values/arrays.xml index c36016051..38e18b013 100644 --- a/app/src/main/res/values/arrays.xml +++ b/app/src/main/res/values/arrays.xml @@ -3,7 +3,7 @@ Use Custom URI? - + @string/preferences_system_default English Čeština @@ -33,7 +33,7 @@ Türkçe - + zz en cs @@ -62,4 +62,14 @@ sv tr + + Streets + Outdoors + Light + Dark + Satellite + Satellite Streets + Navigation Day + Navigation Night + \ 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 6e37eb9c5..4069e1acb 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -140,5 +140,6 @@ Unable to download style pack Language (restart needed) System default + Map style Resend \ No newline at end of file