diff --git a/.github/workflows/apikeys-ci.xml b/.github/workflows/apikeys-ci.xml
index 841112cb..db6981a0 100644
--- a/.github/workflows/apikeys-ci.xml
+++ b/.github/workflows/apikeys-ci.xml
@@ -1,6 +1,8 @@
ci
ci
+ ci
+ ci
ci
ci
ci
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index 001e7adf..11658eb2 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -30,6 +30,8 @@ jobs:
OPENCHARGEMAP_API_KEY: ${{ secrets.OPENCHARGEMAP_API_KEY }}
CHARGEPRICE_API_KEY: ${{ secrets.CHARGEPRICE_API_KEY }}
MAPBOX_API_KEY: ${{ secrets.MAPBOX_API_KEY }}
+ JAWG_API_KEY: ${{ secrets.JAWG_API_KEY }}
+ ARCGIS_API_KEY: ${{ secrets.ARCGIS_API_KEY }}
GOOGLE_MAPS_API_KEY: ${{ secrets.GOOGLE_MAPS_API_KEY }}
FRONYX_API_KEY: ${{ secrets.FRONYX_API_KEY }}
ACRA_CRASHREPORT_CREDENTIALS: ${{ secrets.ACRA_CRASHREPORT_CREDENTIALS }}
diff --git a/README.md b/README.md
index 1c481a39..67fc9aa6 100644
--- a/README.md
+++ b/README.md
@@ -24,7 +24,8 @@ Features
- Android Auto & Android Automotive OS integration
- No ads, fully open source
- Compatible with Android 5.0 and above
-- Can use Google Maps or Mapbox (OpenStreetMap) as map backends - the version available on F-Droid only uses Mapbox.
+- Can use Google Maps or OpenStreetMap as map backends - the version available on F-Droid only uses
+ OSM.
Screenshots
-----------
@@ -43,7 +44,8 @@ EVMap uses and put them into the app in the form of a resource file called `apik
features and how they can be obtained in our [documentation page](doc/api_keys.md).
There are three different build flavors, `googleNormal`, `fossNormal` and `googleAutomotive`.
-- The `foss` variants only use Mapbox data and should run on most Android devices, even without
+
+- The `foss` variants only use OSM data and should run on most Android devices, even without
Google Play Services.
- `fossNormal` is intended to run on smartphones and tablets, and also includes the Android
Auto app for use on the car display (however for that to work, the Android Auto app is
diff --git a/app/build.gradle.kts b/app/build.gradle.kts
index 236c1a32..c058a52b 100644
--- a/app/build.gradle.kts
+++ b/app/build.gradle.kts
@@ -146,6 +146,28 @@ android {
if (mapboxKey != null) {
resValue("string", "mapbox_key", mapboxKey)
}
+ var jawgKey =
+ System.getenv("JAWG_API_KEY") ?: project.findProperty("JAWG_API_KEY")?.toString()
+ if (jawgKey == null && project.hasProperty("JAWG_API_KEY_ENCRYPTED")) {
+ jawgKey = decode(
+ project.findProperty("JAWG_API_KEY_ENCRYPTED").toString(),
+ "FmK.d,-f*p+rD+WK!eds"
+ )
+ }
+ if (jawgKey != null) {
+ resValue("string", "jawg_key", jawgKey)
+ }
+ var arcgisKey =
+ System.getenv("ARCGIS_API_KEY") ?: project.findProperty("ARCGIS_API_KEY")?.toString()
+ if (arcgisKey == null && project.hasProperty("ARCGIS_API_KEY_ENCRYPTED")) {
+ arcgisKey = decode(
+ project.findProperty("ARCGIS_API_KEY_ENCRYPTED").toString(),
+ "FmK.d,-f*p+rD+WK!eds"
+ )
+ }
+ if (arcgisKey != null) {
+ resValue("string", "arcgis_key", jawgKey)
+ }
var chargepriceKey =
System.getenv("CHARGEPRICE_API_KEY") ?: project.findProperty("CHARGEPRICE_API_KEY")
?.toString()
@@ -261,28 +283,11 @@ dependencies {
automotiveImplementation("androidx.car.app:app-automotive:$carAppVersion")
// AnyMaps
- val anyMapsVersion = "4854581f72"
+ val anyMapsVersion = "c087b3e7c2"
implementation("com.github.ev-map.AnyMaps:anymaps-base:$anyMapsVersion")
googleImplementation("com.github.ev-map.AnyMaps:anymaps-google:$anyMapsVersion")
googleImplementation("com.google.android.gms:play-services-maps:18.2.0")
- implementation("com.github.ev-map.AnyMaps:anymaps-mapbox:$anyMapsVersion") {
- exclude(group = "com.mapbox.mapboxsdk", module = "mapbox-android-accounts")
- exclude(group = "com.mapbox.mapboxsdk", module = "mapbox-android-telemetry")
- exclude(group = "com.google.android.gms", module = "play-services-location")
- exclude(group = "com.mapbox.mapboxsdk", module = "mapbox-android-core")
- }
- // original version of mapbox-android-core
- googleImplementation("com.mapbox.mapboxsdk:mapbox-android-core:2.0.1")
- // patched version that removes build-time dependency on GMS (-> no Google location services)
- fossImplementation("com.github.ev-map:mapbox-events-android:a21c324501")
-
- implementation("com.mapbox.mapboxsdk:mapbox-android-sdk") {
- exclude(group = "com.mapbox.mapboxsdk", module = "mapbox-android-accounts")
- exclude(group = "com.mapbox.mapboxsdk", module = "mapbox-android-telemetry")
- version {
- strictly("9.1.0-SNAPSHOT")
- }
- }
+ implementation("com.github.ev-map.AnyMaps:anymaps-maplibre:$anyMapsVersion")
// Google Places
googleImplementation("com.google.android.libraries.places:places:3.3.0")
diff --git a/app/src/foss/res/values-cs/strings.xml b/app/src/foss/res/values-cs/strings.xml
index 553ab259..7b1af4ca 100644
--- a/app/src/foss/res/values-cs/strings.xml
+++ b/app/src/foss/res/values-cs/strings.xml
@@ -2,5 +2,5 @@
Pomohla vám EVMap? Podpořte její vývoj zasláním finančního daru vývojáři.
Přispět pomocí PayPalu
- Mapová data v aplikaci poskytuje služba OpenStreetMap (Mapbox).
+ Mapová data v aplikaci poskytuje služba OpenStreetMap.
\ No newline at end of file
diff --git a/app/src/foss/res/values-de/strings.xml b/app/src/foss/res/values-de/strings.xml
index 689029c6..eb5aedb6 100644
--- a/app/src/foss/res/values-de/strings.xml
+++ b/app/src/foss/res/values-de/strings.xml
@@ -2,5 +2,5 @@
Findest du EVMap nützlich? Unterstütze die Weiterentwicklung der App mit einer Spende an den Entwickler.
Mit PayPal spenden
- Die Kartendaten für die App stammen von OpenStreetMap (Mapbox).
+ Die Kartendaten für die App stammen von OpenStreetMap.
\ No newline at end of file
diff --git a/app/src/foss/res/values-fr/strings.xml b/app/src/foss/res/values-fr/strings.xml
index 7890dc9d..2f733979 100644
--- a/app/src/foss/res/values-fr/strings.xml
+++ b/app/src/foss/res/values-fr/strings.xml
@@ -1,6 +1,6 @@
Trouvez-vous EVMap utile \? Soutenez son développement en envoyant un don au développeur.
- Les données cartographiques de l\'application sont fournies par OpenStreetMap (Mapbox).
+ Les données cartographiques de l\'application sont fournies par OpenStreetMap.
Faire un don avec PayPal
\ No newline at end of file
diff --git a/app/src/foss/res/values-nb-rNO/strings.xml b/app/src/foss/res/values-nb-rNO/strings.xml
index 1907b392..c557064a 100644
--- a/app/src/foss/res/values-nb-rNO/strings.xml
+++ b/app/src/foss/res/values-nb-rNO/strings.xml
@@ -1,6 +1,6 @@
Doner med PayPal
- Kartdata i programmet tilbys av OpenStreetMap (Mapbox).
+ Kartdata i programmet tilbys av OpenStreetMap.
Synes du EVMap er nyttig\? Støtt utviklingen ved å sende en slant til utvikleren.
\ No newline at end of file
diff --git a/app/src/foss/res/values-nl/strings.xml b/app/src/foss/res/values-nl/strings.xml
index dfa3b940..672d18c2 100644
--- a/app/src/foss/res/values-nl/strings.xml
+++ b/app/src/foss/res/values-nl/strings.xml
@@ -2,5 +2,5 @@
Vond je EVMap nuttig\? Je kan de ontwikkeling ondersteunen door een donatie te sturen naar de ontwikkelaar.
Doneer via PayPal
- De kaartgegevens zijn afkomstig van OpenStreetMap (Mapbox).
+ De kaartgegevens zijn afkomstig van OpenStreetMap.
\ No newline at end of file
diff --git a/app/src/foss/res/values-pt/strings.xml b/app/src/foss/res/values-pt/strings.xml
index 199194ad..d9275e0f 100644
--- a/app/src/foss/res/values-pt/strings.xml
+++ b/app/src/foss/res/values-pt/strings.xml
@@ -1,6 +1,6 @@
- Os dados do mapa são fornecidos pelo OpenStreetMap (Mapbox).
+ Os dados do mapa são fornecidos pelo OpenStreetMap.
Doar com o PayPal
Acha que o EVMap é útil\? Apoie a manutenção e desenvolvimento com uma doação para o desenvolvedor da app.
\ No newline at end of file
diff --git a/app/src/foss/res/values-ro/strings.xml b/app/src/foss/res/values-ro/strings.xml
index 59c129c7..f5073b75 100644
--- a/app/src/foss/res/values-ro/strings.xml
+++ b/app/src/foss/res/values-ro/strings.xml
@@ -2,5 +2,5 @@
Crezi ca EVMap este util? Sprijina dezvoltarea printr-o donatie pentru dezvoltator.
Doneaza cu PayPal
- Hartile din aplicatie sunt furnizate de OpenStreetMap (Mapbox).
+ Hartile din aplicatie sunt furnizate de OpenStreetMap.
diff --git a/app/src/foss/res/values/strings.xml b/app/src/foss/res/values/strings.xml
index a1a9f5c6..16452f6c 100644
--- a/app/src/foss/res/values/strings.xml
+++ b/app/src/foss/res/values/strings.xml
@@ -2,5 +2,5 @@
Do you find EVMap useful? Support its development by sending a donation to the developer.
Donate with PayPal
- Map data in the app is provided by OpenStreetMap (Mapbox).
+ Map data in the app is provided by OpenStreetMap.
\ No newline at end of file
diff --git a/app/src/google/res/values-cs/strings.xml b/app/src/google/res/values-cs/strings.xml
index 27131438..4b417d18 100644
--- a/app/src/google/res/values-cs/strings.xml
+++ b/app/src/google/res/values-cs/strings.xml
@@ -3,5 +3,5 @@
Pomohla vám EVMap? Podpořte její vývoj posláním finančního daru vývojáři.
\n
\nGoogle si z každého daru strhne 15 %.
- V nastavení můžete také pro mapová data přepínat mezi službami Mapy Google a OpenStreetMap (Mapbox).
+ V nastavení můžete také pro mapová data přepínat mezi službami Mapy Google a OpenStreetMap.
\ No newline at end of file
diff --git a/app/src/google/res/values-de/strings.xml b/app/src/google/res/values-de/strings.xml
index 17c857ec..73a36968 100644
--- a/app/src/google/res/values-de/strings.xml
+++ b/app/src/google/res/values-de/strings.xml
@@ -1,5 +1,5 @@
Findest du EVMap nützlich? Unterstütze die Weiterentwicklung der App mit einer Spende an den Entwickler.\n\nGoogle zieht von der Spende 15% Gebühren ab.
- In den Einstellungen kannst du auch zwischen Google Maps und OpenStreetMap (Mapbox) für die Kartendaten wechseln.
+ In den Einstellungen kannst du auch zwischen Google Maps und OpenStreetMap für die Kartendaten wechseln.
\ No newline at end of file
diff --git a/app/src/google/res/values-fr/strings.xml b/app/src/google/res/values-fr/strings.xml
index 36d88192..06df6e87 100644
--- a/app/src/google/res/values-fr/strings.xml
+++ b/app/src/google/res/values-fr/strings.xml
@@ -3,5 +3,5 @@
Trouvez-vous EVMap utile \? Soutenez son développement en envoyant un don au développeur.
\n
\nGoogle prend 15% sur chaque don.
- Dans les paramètres, vous pouvez également choisir entre Google Maps et OpenStreetMap (Mapbox) pour les données cartographiques.
+ Dans les paramètres, vous pouvez également choisir entre Google Maps et OpenStreetMap pour les données cartographiques.
\ No newline at end of file
diff --git a/app/src/google/res/values-nb-rNO/strings.xml b/app/src/google/res/values-nb-rNO/strings.xml
index ae699505..8be4a395 100644
--- a/app/src/google/res/values-nb-rNO/strings.xml
+++ b/app/src/google/res/values-nb-rNO/strings.xml
@@ -3,5 +3,5 @@
Synes du EVMap er nyttig\? Støtt utviklingen ved å sende penger til utvikleren.
\n
\nGoogle tar 15% av alle donasjoner.
- I innstillingene kan du også bytte mellom Google Maps og OpenStreetMap (Mapbox) for kartdata.
+ I innstillingene kan du også bytte mellom Google Maps og OpenStreetMap for kartdata.
\ No newline at end of file
diff --git a/app/src/google/res/values-nl/strings.xml b/app/src/google/res/values-nl/strings.xml
index 8456d2bc..cbb9b624 100644
--- a/app/src/google/res/values-nl/strings.xml
+++ b/app/src/google/res/values-nl/strings.xml
@@ -3,5 +3,5 @@
Vind je EVMap nuttig\? Je kan de ontwikkeling steunen via een donatie aan de ontwikkelaar.
\n
\nGoogle houdt 15% in van elke donatie.
- In de instellingen kan je ook wisselen tussen Google Maps en OpenStreetMap (Mapbox) voor de kaartgegevens.
+ In de instellingen kan je ook wisselen tussen Google Maps en OpenStreetMap voor de kaartgegevens.
\ No newline at end of file
diff --git a/app/src/google/res/values-pt/strings.xml b/app/src/google/res/values-pt/strings.xml
index 3de98fa3..009812a8 100644
--- a/app/src/google/res/values-pt/strings.xml
+++ b/app/src/google/res/values-pt/strings.xml
@@ -3,5 +3,5 @@
Acha que o EVMap é útil\? Apoie a manutenção e desenvolvimento com uma doação para o desenvolvedor da app.
\n
\nA Google cobra 15% de cada doação.
- Também pode mudar entre o Google Maps e OpenStreetMap (Mapbox) nas definições da app.
+ Também pode mudar entre o Google Maps e OpenStreetMap nas definições da app.
\ No newline at end of file
diff --git a/app/src/google/res/values/arrays.xml b/app/src/google/res/values/arrays.xml
index 19050a10..c06026a8 100644
--- a/app/src/google/res/values/arrays.xml
+++ b/app/src/google/res/values/arrays.xml
@@ -2,7 +2,7 @@
- @string/pref_provider_google_maps
- - @string/pref_provider_osm_mapbox
+ - @string/pref_provider_osm
- google
diff --git a/app/src/google/res/values/strings.xml b/app/src/google/res/values/strings.xml
index 03525fed..5e59b65c 100644
--- a/app/src/google/res/values/strings.xml
+++ b/app/src/google/res/values/strings.xml
@@ -1,5 +1,5 @@
Do you find EVMap useful? Support its development by sending a donation to the developer.\n\nGoogle takes 15% off every donation.
- In the settings you can also switch between Google Maps and OpenStreetMap (Mapbox) for the map data.
+ In the settings you can also switch between Google Maps and OpenStreetMap for the map data.
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 5b89fd05..d6a38f06 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -48,6 +48,14 @@
android:name="com.mapbox.ACCESS_TOKEN"
android:value="@string/mapbox_key" />
+
+
+
+
MapFragment.MAPBOX
+ "mapbox" -> MapFragment.MAPLIBRE
"google" -> MapFragment.GOOGLE
else -> null
},
MapFragment.GOOGLE,
- MapFragment.MAPBOX
+ MapFragment.MAPLIBRE
)
childFragmentManager
.beginTransaction()
@@ -275,7 +275,7 @@ class MapFragment : Fragment(), OnMapReadyCallback, MapsActivity.FragmentCallbac
// set map padding so that compass is not obstructed by toolbar
mapTopPadding = systemWindowInsetTop + (48 * density).toInt() + (16 * density).toInt()
- // if we actually use map.setPadding here, Mapbox will re-trigger onApplyWindowInsets
+ // if we actually use map.setPadding here, MapLibre will re-trigger onApplyWindowInsets
// and cause an infinite loop. So we rely on onMapReady being called later than
// onApplyWindowInsets.
@@ -1052,6 +1052,9 @@ class MapFragment : Fragment(), OnMapReadyCallback, MapsActivity.FragmentCallbac
val context = this.context ?: return
chargerIconGenerator = ChargerIconGenerator(context, map.bitmapDescriptorFactory)
+ vm.mapTrafficSupported.value =
+ mapFragment?.let { AnyMap.Feature.TRAFFIC_LAYER in it.supportedFeatures } ?: false
+
if (BuildConfig.FLAVOR.contains("google") && mapFragment!!.priority[0] == MapFragment.GOOGLE) {
// Google Maps: icons can be generated in background thread
lifecycleScope.launch {
@@ -1060,7 +1063,7 @@ class MapFragment : Fragment(), OnMapReadyCallback, MapsActivity.FragmentCallbac
}
}
} else {
- // Mapbox: needs to be run on main thread
+ // MapLibre: needs to be run on main thread
chargerIconGenerator.preloadCache()
}
diff --git a/app/src/main/java/net/vonforst/evmap/viewmodel/MapViewModel.kt b/app/src/main/java/net/vonforst/evmap/viewmodel/MapViewModel.kt
index 6a93b7af..0008c6cd 100644
--- a/app/src/main/java/net/vonforst/evmap/viewmodel/MapViewModel.kt
+++ b/app/src/main/java/net/vonforst/evmap/viewmodel/MapViewModel.kt
@@ -3,7 +3,16 @@ package net.vonforst.evmap.viewmodel
import android.app.Application
import android.graphics.Point
import android.os.Parcelable
-import androidx.lifecycle.*
+import androidx.lifecycle.AndroidViewModel
+import androidx.lifecycle.LiveData
+import androidx.lifecycle.MediatorLiveData
+import androidx.lifecycle.MutableLiveData
+import androidx.lifecycle.SavedStateHandle
+import androidx.lifecycle.distinctUntilChanged
+import androidx.lifecycle.liveData
+import androidx.lifecycle.map
+import androidx.lifecycle.switchMap
+import androidx.lifecycle.viewModelScope
import com.car2go.maps.AnyMap
import com.car2go.maps.Projection
import com.car2go.maps.model.LatLng
@@ -24,7 +33,17 @@ import net.vonforst.evmap.api.openchargemap.OCMConnection
import net.vonforst.evmap.api.openchargemap.OCMReferenceData
import net.vonforst.evmap.api.stringProvider
import net.vonforst.evmap.autocomplete.PlaceWithBounds
-import net.vonforst.evmap.model.*
+import net.vonforst.evmap.model.ChargeLocation
+import net.vonforst.evmap.model.Chargepoint
+import net.vonforst.evmap.model.ChargepointListItem
+import net.vonforst.evmap.model.FILTERS_DISABLED
+import net.vonforst.evmap.model.FILTERS_FAVORITES
+import net.vonforst.evmap.model.Favorite
+import net.vonforst.evmap.model.FavoriteWithDetail
+import net.vonforst.evmap.model.FilterValue
+import net.vonforst.evmap.model.FilterValues
+import net.vonforst.evmap.model.getMultipleChoiceValue
+import net.vonforst.evmap.model.getSliderValue
import net.vonforst.evmap.storage.AppDatabase
import net.vonforst.evmap.storage.ChargeLocationsRepository
import net.vonforst.evmap.storage.EncryptedPreferenceDataStore
@@ -282,6 +301,12 @@ class MapViewModel(application: Application, private val state: SavedStateHandle
}
}
+ val mapTrafficSupported: MutableLiveData by lazy {
+ MutableLiveData().apply {
+ value = false
+ }
+ }
+
val mapTrafficEnabled: MutableLiveData by lazy {
MutableLiveData().apply {
value = prefs.mapTrafficEnabled
diff --git a/app/src/main/res/layout/map_layers.xml b/app/src/main/res/layout/map_layers.xml
index e1eb21f6..a261901b 100644
--- a/app/src/main/res/layout/map_layers.xml
+++ b/app/src/main/res/layout/map_layers.xml
@@ -80,6 +80,7 @@
android:layout_marginEnd="16dp"
android:text="@string/map_details"
android:textAppearance="@style/TextAppearance.Material3.TitleSmall"
+ app:goneUnless="@{vm.mapTrafficSupported}"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="parent"
@@ -94,6 +95,7 @@
android:layout_marginEnd="16dp"
android:text="@string/map_traffic"
android:checked="@={vm.mapTrafficEnabled}"
+ app:goneUnless="@{vm.mapTrafficSupported}"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/textView23" />
diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml
index e98ecd25..84fe57f6 100644
--- a/app/src/main/res/values-de/strings.xml
+++ b/app/src/main/res/values-de/strings.xml
@@ -271,6 +271,7 @@
Schwedische Krone (SEK)
US-Dollar (USD)
Google Maps
+ OpenStreetMap
OpenStreetMap (Mapbox)
Mitwirkende
Dank an alle Mitwirkenden für ihre Beiträge von Code und Übersetzungen für EVMap:
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 55a6f1f7..7f4c3a1e 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -271,6 +271,7 @@
Swedish krona (SEK)
US dollar (USD)
Google Maps
+ OpenStreetMap
OpenStreetMap (Mapbox)
Contributors
Thanks to all contributors for their coding and translation contributions to EVMap:
diff --git a/build.gradle.kts b/build.gradle.kts
index abe7937c..88912da5 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -26,9 +26,6 @@ allprojects {
mavenCentral()
//noinspection JcenterRepositoryObsolete
maven { setUrl("https://jitpack.io") }
- maven {
- setUrl("https://raw.githubusercontent.com/ev-map/mapbox-gl-native-android/mvn")
- }
}
}
diff --git a/doc/api_keys.md b/doc/api_keys.md
index 27d1b4bb..7b694f52 100644
--- a/doc/api_keys.md
+++ b/doc/api_keys.md
@@ -17,6 +17,12 @@ be put into the app in the form of a resource file called `apikeys.xml` under
insert your Mapbox key here
+
+ insert your Jawg Maps key here
+
+
+ insert your ArcGIS Maps key here
+
insert your GoingElectric key here
@@ -52,10 +58,12 @@ Map providers
The different Map SDKs are wrapped by our [fork](https://github.com/ev-map/AnyMaps) of the
[AnyMaps](https://github.com/sharenowTech/AnyMaps) library to provide a common API. The `google`
-build flavor of the app includes both Google Maps and Mapbox and allows the user to switch between
-the two, while the `foss` flavor only includes the Mapbox SDK.
+build flavor of the app includes both Google Maps and OpenStreetMap (vector tiles from
+[Jawg Maps](https://www.jawg.io/en/) through [MapLibre](https://maplibre.org/)) and allows the user
+to switch between the two, while the `foss` flavor only includes OSM.
-> ⚠️ When testing the app using the Android Emulator, we recommend using Google Maps and not Mapbox, as the latter has
+> ⚠️ When testing the app using the Android Emulator, we recommend using Google Maps and not
+> OSM/MapLibre, as the latter has
[issues displaying the markers](https://github.com/mapbox/mapbox-gl-native/issues/10829). It works fine on real Android devices.
### Google Maps
@@ -77,9 +85,39 @@ the two, while the `foss` flavor only includes the Mapbox SDK.
+### Jawg Maps
+
+[Dynamic Maps](https://www.jawg.io/docs/apidocs/maps/)
+
+
+How to obtain an API key
+
+1. [Sign up](https://www.jawg.io/lab) for a Jawg account
+2. Under [Access Tokens](https://www.jawg.io/lab/access-tokens), copy your default access token or
+ create a new one. Do not restrict it to a specific origin (this setting is not compatible with
+ Android apps).
+
+
+
+### ArcGIS
+
+[World Imagery basemap](https://www.arcgis.com/home/item.html?id=10df2279f9684e4a9f6a7f08febac2a9)
+*We use this for the satellite map, as [Jawg's](https://blog.jawg.io/satellite-imaging/) satellite
+style does not have global coverage.*
+
+
+How to obtain an API key
+
+1. [Sign up](https://developers.arcgis.com/dashboard/) for an ArcGIS developer account
+2. In the dashboard, copy your default API key or create a new one. It has to have access to the
+ "Basemaps" service.
+
+
+
### Mapbox
-[Maps SDK for Android](https://docs.mapbox.com/android/maps)
+[Geocoding API](https://docs.mapbox.com/api/search/geocoding/)
+*previously we also used Mapbox's Maps SDK, but this has now been switched to Jawg Maps.*
How to obtain an API key
@@ -91,7 +129,6 @@ the two, while the `foss` flavor only includes the Mapbox SDK.
-
Charging station databases
--------------------------
diff --git a/fastlane/metadata/android/cs-CZ/full_description.txt b/fastlane/metadata/android/cs-CZ/full_description.txt
index 0c67db74..fab38145 100644
--- a/fastlane/metadata/android/cs-CZ/full_description.txt
+++ b/fastlane/metadata/android/cs-CZ/full_description.txt
@@ -5,7 +5,7 @@ Funkce:
- Zobrazuje všechny nabíjecí stanice z komunitou spravovaných databází GoingElectric.de a Open Charge Map.
- Informace o dostupnosti v reálném čase (pouze v Evropě)
- Integrované srovnání cen pomocí Chargeprice.app (pouze v Evropě)
-- Mapové podklady z OpenStreetMap (Mapbox)
+- Mapové podklady z OpenStreetMap
- Vyhledávání míst
- Pokročilé možnosti filtrování, včetně uložených profilů filtrů
- Seznam oblíbených, také s informacemi o dostupnosti
diff --git a/fastlane/metadata/android/de-DE/full_description.txt b/fastlane/metadata/android/de-DE/full_description.txt
index ba77751a..ec26ee08 100644
--- a/fastlane/metadata/android/de-DE/full_description.txt
+++ b/fastlane/metadata/android/de-DE/full_description.txt
@@ -5,7 +5,7 @@ Funktionen:
- Anzeige der Stromtankstellen aus den Stromtankstellenverzeichnissen von GoingElectric.de und Open Charge Map
- Echtzeit-Verfügbarkeitsanzeige für viele Ladesäulen (nur in Europa)
- Integrierter Preisvergleich für die jeweilige Ladesäule mit Chargeprice.app (nur in Europa)
-- Kartendaten von OpenStreetMap (Mapbox)
+- Kartendaten von OpenStreetMap
- Suche nach Orten
- Erweiterte Filterfunktionen, Filterprofile speichern
- Favoritenliste, auch mit Anzeige der Verfügbarkeit
diff --git a/fastlane/metadata/android/en-US/full_description.txt b/fastlane/metadata/android/en-US/full_description.txt
index 5c4c7bdf..0fc8cd4b 100644
--- a/fastlane/metadata/android/en-US/full_description.txt
+++ b/fastlane/metadata/android/en-US/full_description.txt
@@ -5,7 +5,7 @@ Features:
- Shows all charging stations from the community-maintained GoingElectric.de and Open Charge Map directories
- Realtime availability information (only in Europe)
- Integrated price comparison using Chargeprice.app (only in Europe)
-- Map data from OpenStreetMap (Mapbox)
+- Map data from OpenStreetMap
- Search for places
- Advanced filtering options, including saved filter profiles
- Favorites list, also with availability information
diff --git a/fastlane/metadata/android/fr/full_description.txt b/fastlane/metadata/android/fr/full_description.txt
index 9b3259e7..034a4a72 100644
--- a/fastlane/metadata/android/fr/full_description.txt
+++ b/fastlane/metadata/android/fr/full_description.txt
@@ -5,7 +5,7 @@ Caractéristiques :
- Affiche toutes les stations de recharge des répertoires GoingElectric.de et Open Charge Map gérés par la communauté.
- Informations sur la disponibilité en temps réel (uniquement en Europe)
- Comparaison des prix intégrée grâce à Chargeprice.app (uniquement en Europe)
-- Données cartographiques provenant d'OpenStreetMap (Mapbox)
+- Données cartographiques provenant d'OpenStreetMap
- Recherche de lieux
- Options de filtrage avancées, y compris les profils de filtrage enregistrés
- Liste de favoris, avec également des informations sur la disponibilité
diff --git a/fastlane/metadata/android/nb-NO/full_description.txt b/fastlane/metadata/android/nb-NO/full_description.txt
index 0b73cc44..27fc4895 100644
--- a/fastlane/metadata/android/nb-NO/full_description.txt
+++ b/fastlane/metadata/android/nb-NO/full_description.txt
@@ -5,7 +5,7 @@ Du finner info om ladestasjoner i hele verden og sanntidsinfo for mange av dem s
- Materiell design
- Sanntidsinfo (kun i Europa)
- Integrert sammenligningsinfo ved bruk av Chargeprice.app (kun i Europa)
-- Kartdata fra OpenStreetMap (Mapbox)
+- Kartdata fra OpenStreetMap
- Søk etter steder
- Avanserte filtreringsvalg, inkludert lagrede filterprofiler
- Favorittliste, som også har tilgjengelighetsinfo
diff --git a/fastlane/metadata/android/nl-NL/full_description.txt b/fastlane/metadata/android/nl-NL/full_description.txt
index b48c4a70..85295379 100644
--- a/fastlane/metadata/android/nl-NL/full_description.txt
+++ b/fastlane/metadata/android/nl-NL/full_description.txt
@@ -5,7 +5,7 @@ Kenmerken:
- Toont alle laadpunten van de GoingElectric.de en Open Charge Map databanken
- Real-time status (enkel in Europa)
- Geïntegreerde prijsvergelijking via Chargeprice.app (enkel in Europe)
-- Kaartgegevens van OpenStreetMap (Mapbox)
+- Kaartgegevens van OpenStreetMap
- Zoek naar locaties
- Geavanceerde filtermogelijkheden, inclusief bewaarde filterprofielen
- Lijst van favorieten, met statusinformatie
diff --git a/fastlane/metadata/android/pt/full_description.txt b/fastlane/metadata/android/pt/full_description.txt
index f7fb9c0a..3e80fc21 100644
--- a/fastlane/metadata/android/pt/full_description.txt
+++ b/fastlane/metadata/android/pt/full_description.txt
@@ -5,7 +5,7 @@ Destaques:
- Mostra todas as estações de carregamento dos diretórios GoingElectric.de e Open Charge Map mantidos pela comunidade
- Informação de disponibilidade em tempo real (apenas na Europa)
- Comparação de preços integrada usando o Chargeprice.app (apenas na Europa)
-- Informação do mapa via OpenStreetMap (Mapbox)
+- Informação do mapa via OpenStreetMap
- Pesquise lugares
- Opções de filtragem avançadas, incluindo filtros de pesquisa que podem ser guardados
- Lista de favoritos, também com informações de disponibilidade