From 166360717137bcf473d2a33c872dc6d586ea1402 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20H=C3=B6gberg?= Date: Tue, 19 Nov 2024 20:18:25 +0100 Subject: [PATCH] Add URLs to edit nobil chargers There's a web page for Swedish chargers, but we need to send email for the other countries. --- .../vonforst/evmap/api/nobil/NobilModel.kt | 6 +++++- .../vonforst/evmap/fragment/MapFragment.kt | 21 ++++++++++++++++++- app/src/main/res/values-sv/strings.xml | 1 + app/src/main/res/values/strings.xml | 1 + 4 files changed, 27 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/net/vonforst/evmap/api/nobil/NobilModel.kt b/app/src/main/java/net/vonforst/evmap/api/nobil/NobilModel.kt index 48fed0ef..37757f03 100644 --- a/app/src/main/java/net/vonforst/evmap/api/nobil/NobilModel.kt +++ b/app/src/main/java/net/vonforst/evmap/api/nobil/NobilModel.kt @@ -1,5 +1,6 @@ package net.vonforst.evmap.api.nobil +import android.net.Uri import androidx.core.text.HtmlCompat import com.squareup.moshi.Json import com.squareup.moshi.JsonClass @@ -114,7 +115,10 @@ data class NobilChargerStation( HtmlCompat.FROM_HTML_MODE_COMPACT ).toString() else null, "https://nobil.no", - null, + when (chargerStationData.landCode) { + "SWE" -> "https://www.energimyndigheten.se/klimat/transporter/laddinfrastruktur/registrera-din-laddstation/elbilsagare/" + else -> "mailto:post@nobil.no?subject=" + Uri.encode("Regarding charging station " + chargerStationData.internationalId) + }, null, chargerStationData.ocpiId != null || chargerStationData.updated.isAfter(LocalDateTime.now().minusMonths(6)), diff --git a/app/src/main/java/net/vonforst/evmap/fragment/MapFragment.kt b/app/src/main/java/net/vonforst/evmap/fragment/MapFragment.kt index 31a43fb4..7c32bbfa 100644 --- a/app/src/main/java/net/vonforst/evmap/fragment/MapFragment.kt +++ b/app/src/main/java/net/vonforst/evmap/fragment/MapFragment.kt @@ -3,11 +3,14 @@ package net.vonforst.evmap.fragment import android.Manifest.permission.ACCESS_COARSE_LOCATION import android.Manifest.permission.ACCESS_FINE_LOCATION import android.annotation.SuppressLint +import android.content.ActivityNotFoundException import android.content.ClipData import android.content.ClipboardManager import android.content.Context +import android.content.Intent import android.content.res.Configuration import android.graphics.Color +import android.net.Uri import android.os.Build import android.os.Bundle import android.text.method.KeyListener @@ -509,7 +512,23 @@ class MapFragment : Fragment(), OnMapReadyCallback, MenuProvider { R.id.menu_edit -> { val charger = vm.charger.value?.data if (charger?.editUrl != null) { - (activity as? MapsActivity)?.openUrl(charger.editUrl, binding.root, true) + val uri = Uri.parse(charger.editUrl) + if (uri.getScheme() == "mailto") { + val intent = Intent(Intent.ACTION_SENDTO, uri) + try { + startActivity(intent) + } catch (e: ActivityNotFoundException) { + Toast.makeText( + requireContext(), + R.string.no_email_app_found, + Toast.LENGTH_LONG + ).show() + } + } + else { + (activity as? MapsActivity)?.openUrl(charger.editUrl, binding.root, true) + } + if (vm.apiId.value == "goingelectric") { // instructions specific to GoingElectric Toast.makeText( diff --git a/app/src/main/res/values-sv/strings.xml b/app/src/main/res/values-sv/strings.xml index 1df8b660..605156c3 100644 --- a/app/src/main/res/values-sv/strings.xml +++ b/app/src/main/res/values-sv/strings.xml @@ -5,6 +5,7 @@ Laddkontakter Installera en kartapp först Installera en webbläsare först + Installera en e-postapp först Adress Operatör Nätverk diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 38af7f4e..25e2ced5 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -5,6 +5,7 @@ Connectors Install a navigation app first Install a web browser first + Install an email app first Address Operator Network