diff --git a/app/src/main/java/net/vonforst/evmap/auto/ChargerDetailScreen.kt b/app/src/main/java/net/vonforst/evmap/auto/ChargerDetailScreen.kt index caa16770..6a29a5e8 100644 --- a/app/src/main/java/net/vonforst/evmap/auto/ChargerDetailScreen.kt +++ b/app/src/main/java/net/vonforst/evmap/auto/ChargerDetailScreen.kt @@ -151,6 +151,18 @@ class ChargerDetailScreen( ) .setTitle(carContext.getString(R.string.auto_prices)) .setOnClickListener { + if (!prefs.chargepriceRemoval2025DialogShown) { + screenManager.push( + TextDialogScreen( + carContext, + R.string.chargeprice_removal_2025_dialog_title, + R.string.chargeprice_removal_2025_dialog_detail + ) + ) + prefs.chargepriceRemoval2025DialogShown = true + return@setOnClickListener + } + val intent = Intent( Intent.ACTION_VIEW, Uri.parse(ChargepriceApi.getPoiUrl(charger)) diff --git a/app/src/main/java/net/vonforst/evmap/auto/TextDialogScreen.kt b/app/src/main/java/net/vonforst/evmap/auto/TextDialogScreen.kt new file mode 100644 index 00000000..e5db347d --- /dev/null +++ b/app/src/main/java/net/vonforst/evmap/auto/TextDialogScreen.kt @@ -0,0 +1,21 @@ +package net.vonforst.evmap.auto + +import androidx.annotation.StringRes +import androidx.car.app.CarContext +import androidx.car.app.Screen +import androidx.car.app.model.Action +import androidx.car.app.model.LongMessageTemplate +import androidx.car.app.model.Template + +class TextDialogScreen( + ctx: CarContext, + @StringRes val title: Int, + @StringRes val message: Int +) : Screen(ctx) { + override fun onGetTemplate(): Template { + return LongMessageTemplate.Builder(carContext.getString(message)).apply { + setTitle(carContext.getString(title)) + setHeaderAction(Action.BACK) + }.build() + } +} \ No newline at end of file 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 f7be2459..0e18d07b 100644 --- a/app/src/main/java/net/vonforst/evmap/fragment/MapFragment.kt +++ b/app/src/main/java/net/vonforst/evmap/fragment/MapFragment.kt @@ -447,6 +447,24 @@ class MapFragment : Fragment(), OnMapReadyCallback, MenuProvider { } binding.detailView.btnChargeprice.setOnClickListener { val charger = vm.charger.value?.data ?: return@setOnClickListener + + if (prefs.chargepriceCounter > 0 && !prefs.chargepriceRemoval2025DialogShown) { + // user has been using the native Chargeprice integration before + MaterialAlertDialogBuilder(requireContext()) + .setTitle(R.string.chargeprice_removal_2025_dialog_title) + .setMessage(R.string.chargeprice_removal_2025_dialog_detail) + .setPositiveButton(R.string.ok) { di, _ -> + di.cancel() + prefs.chargepriceRemoval2025DialogShown = true + (activity as? MapsActivity)?.openUrl( + ChargepriceApi.getPoiUrl(charger), + binding.root + ) + } + .show() + return@setOnClickListener + } + (activity as? MapsActivity)?.openUrl( ChargepriceApi.getPoiUrl(charger), binding.root diff --git a/app/src/main/java/net/vonforst/evmap/storage/PreferenceDataSource.kt b/app/src/main/java/net/vonforst/evmap/storage/PreferenceDataSource.kt index da3d2ffc..b415e74e 100644 --- a/app/src/main/java/net/vonforst/evmap/storage/PreferenceDataSource.kt +++ b/app/src/main/java/net/vonforst/evmap/storage/PreferenceDataSource.kt @@ -167,6 +167,12 @@ class PreferenceDataSource(val context: Context) { sp.edit().putLong("chargeprice_counter", value).apply() } + var chargepriceRemoval2025DialogShown: Boolean + get() = sp.getBoolean("chargeprice_removal_2025_dialog_shown", false) + set(value) { + sp.edit().putBoolean("chargeprice_removal_2025_dialog_shown", value).apply() + } + var opensourceDonationsDialogLastShown: Instant get() = Instant.ofEpochMilli(sp.getLong("opensource_donations_dialog_last_shown", 0L)) set(value) { diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index 916fdcfc..1e7e555b 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -386,4 +386,6 @@ Mitarbeiter Nach Vereinbarung Bewohner + Sorry! + Die Kosten für den Zugriff auf Chargeprice-Daten sind stark gestiegen und können nicht mehr durch Spenden gedeckt werden. Daher kann EVMap diese Daten nicht mehr direkt anzeigen. Hier öffnet sich nun die Chargeprice-Website. Eine alternative Lösung ist in Arbeit, wird aber Zeit brauchen und anfangs nur eingeschränkt funktionieren. Danke für eure Geduld und Unterstützung! diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 8a6dd5c7..83bb58df 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -386,4 +386,6 @@ Employees By appointment Residents + Sorry! + Costs for Chargeprice data access have risen sharply and can’t be covered by donations, so EVMap can no longer show this data directly. For now, this opens the Chargeprice website. An alternative solution is being developed, but it’ll take time and may start with limited features. Thanks for your patience and support! \ No newline at end of file