From c105cbfff1dc94934d4cdee4f775c4f9b48e5e17 Mon Sep 17 00:00:00 2001 From: johan12345 Date: Thu, 26 May 2022 17:51:45 +0200 Subject: [PATCH] add "allow unbalanced load" setting for Chargeprice fixes #170 --- .../net/vonforst/evmap/auto/ChargepriceScreen.kt | 5 +++-- .../java/net/vonforst/evmap/auto/SettingsScreens.kt | 12 ++++++++++++ .../vonforst/evmap/storage/PreferenceDataSource.kt | 6 ++++++ .../vonforst/evmap/viewmodel/ChargepriceViewModel.kt | 4 ++-- app/src/main/res/values-de/strings.xml | 2 ++ app/src/main/res/values/strings.xml | 2 ++ app/src/main/res/xml/settings_chargeprice.xml | 6 ++++++ 7 files changed, 33 insertions(+), 4 deletions(-) diff --git a/app/src/google/java/net/vonforst/evmap/auto/ChargepriceScreen.kt b/app/src/google/java/net/vonforst/evmap/auto/ChargepriceScreen.kt index 093af98f..223b8476 100644 --- a/app/src/google/java/net/vonforst/evmap/auto/ChargepriceScreen.kt +++ b/app/src/google/java/net/vonforst/evmap/auto/ChargepriceScreen.kt @@ -22,7 +22,7 @@ import moe.banana.jsonapi2.HasMany import moe.banana.jsonapi2.HasOne import moe.banana.jsonapi2.JsonBuffer import moe.banana.jsonapi2.ResourceIdentifier -import net.vonforst.evmap.* +import net.vonforst.evmap.R import net.vonforst.evmap.api.chargeprice.* import net.vonforst.evmap.model.ChargeLocation import net.vonforst.evmap.storage.AppDatabase @@ -198,7 +198,8 @@ class ChargepriceScreen(ctx: CarContext, val charger: ChargeLocation) : Screen(c batteryRange = batteryRange.map { it.toDouble() }, providerCustomerTariffs = prefs.chargepriceShowProviderCustomerTariffs, maxMonthlyFees = if (prefs.chargepriceNoBaseFee) 0.0 else null, - currency = prefs.chargepriceCurrency + currency = prefs.chargepriceCurrency, + allowUnbalancedLoad = prefs.chargepriceAllowUnbalancedLoad ) }, ChargepriceApi.getChargepriceLanguage()) diff --git a/app/src/google/java/net/vonforst/evmap/auto/SettingsScreens.kt b/app/src/google/java/net/vonforst/evmap/auto/SettingsScreens.kt index 2f661af8..53b76a8e 100644 --- a/app/src/google/java/net/vonforst/evmap/auto/SettingsScreens.kt +++ b/app/src/google/java/net/vonforst/evmap/auto/SettingsScreens.kt @@ -97,6 +97,9 @@ class ChooseDataSourceScreen(ctx: CarContext) : Screen(ctx) { class ChargepriceSettingsScreen(ctx: CarContext) : Screen(ctx) { val prefs = PreferenceDataSource(carContext) + private val maxRows = if (ctx.carAppApiLevel >= 2) { + ctx.constraintManager.getContentLimit(ConstraintManager.CONTENT_LIMIT_TYPE_LIST) + } else 6 override fun onGetTemplate(): Template { return ListTemplate.Builder().apply { @@ -162,6 +165,15 @@ class ChargepriceSettingsScreen(ctx: CarContext) : Screen(ctx) { prefs.chargepriceShowProviderCustomerTariffs = it }.setChecked(prefs.chargepriceShowProviderCustomerTariffs).build()) }.build()) + if (maxRows > 6) { + addItem(Row.Builder().apply { + setTitle(carContext.getString(R.string.pref_chargeprice_allow_unbalanced_load)) + addText(carContext.getString(R.string.pref_chargeprice_allow_unbalanced_load_summary)) + setToggle(Toggle.Builder { + prefs.chargepriceAllowUnbalancedLoad = it + }.setChecked(prefs.chargepriceAllowUnbalancedLoad).build()) + }.build()) + } }.build()) }.build() } 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 48974507..0604c76e 100644 --- a/app/src/main/java/net/vonforst/evmap/storage/PreferenceDataSource.kt +++ b/app/src/main/java/net/vonforst/evmap/storage/PreferenceDataSource.kt @@ -151,6 +151,12 @@ class PreferenceDataSource(val context: Context) { sp.edit().putBoolean("chargeprice_show_provider_customer_tariffs", value).apply() } + var chargepriceAllowUnbalancedLoad: Boolean + get() = sp.getBoolean("chargeprice_allow_unbalanced_load", false) + set(value) { + sp.edit().putBoolean("chargeprice_allow_unbalanced_load", value).apply() + } + var chargepriceCurrency: String get() = sp.getString("chargeprice_currency", null) ?: "EUR" set(value) { diff --git a/app/src/main/java/net/vonforst/evmap/viewmodel/ChargepriceViewModel.kt b/app/src/main/java/net/vonforst/evmap/viewmodel/ChargepriceViewModel.kt index acc302d4..593b3994 100644 --- a/app/src/main/java/net/vonforst/evmap/viewmodel/ChargepriceViewModel.kt +++ b/app/src/main/java/net/vonforst/evmap/viewmodel/ChargepriceViewModel.kt @@ -15,7 +15,6 @@ import net.vonforst.evmap.model.Chargepoint import net.vonforst.evmap.storage.PreferenceDataSource import retrofit2.HttpException import java.io.IOException -import java.util.* class ChargepriceViewModel(application: Application, chargepriceApiKey: String) : AndroidViewModel(application) { @@ -245,7 +244,8 @@ class ChargepriceViewModel(application: Application, chargepriceApiKey: String) batteryRange = batteryRange.value!!.map { it.toDouble() }, providerCustomerTariffs = prefs.chargepriceShowProviderCustomerTariffs, maxMonthlyFees = if (prefs.chargepriceNoBaseFee) 0.0 else null, - currency = prefs.chargepriceCurrency + currency = prefs.chargepriceCurrency, + allowUnbalancedLoad = prefs.chargepriceAllowUnbalancedLoad ) }, ChargepriceApi.getChargepriceLanguage()) val meta = diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index 611fbfee..6d29fd09 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -253,4 +253,6 @@ Datenquellen Hilfe Android Auto + Schieflast erlauben + 4.5 kW an AC-Stationen für Autos mit 1-phasigem Lader]]> diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index e295b168..0e483dce 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -238,4 +238,6 @@ Data sources Help Android Auto + Enable unbalanced load + 4.5 kW at AC stations for cars with single-phase charger]]> diff --git a/app/src/main/res/xml/settings_chargeprice.xml b/app/src/main/res/xml/settings_chargeprice.xml index 535828bb..cf4b6c36 100644 --- a/app/src/main/res/xml/settings_chargeprice.xml +++ b/app/src/main/res/xml/settings_chargeprice.xml @@ -28,4 +28,10 @@ android:summary="@string/pref_chargeprice_show_provider_customer_tariffs_summary" android:defaultValue="false" app:singleLineTitle="false" /> + \ No newline at end of file