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