taler-android

Android apps for GNU Taler (wallet, PoS, cashier)
Log | Files | Refs | README | LICENSE

commit e59ded91923c5ffb736a8dc77ef771cde10c75c5
parent b21e679983d97fb01c652b6195c22885d70a8518
Author: Iván Ávalos <avalos@disroot.org>
Date:   Wed, 22 May 2024 11:05:57 -0600

[wallet] Remove template currency selection and unnecessary amount parsing

bug 0008854

Diffstat:
Mwallet/src/main/java/net/taler/wallet/payment/PayTemplateDetails.kt | 21++++++---------------
Mwallet/src/main/java/net/taler/wallet/payment/PayTemplateOrderComposable.kt | 11++++++-----
2 files changed, 12 insertions(+), 20 deletions(-)

diff --git a/wallet/src/main/java/net/taler/wallet/payment/PayTemplateDetails.kt b/wallet/src/main/java/net/taler/wallet/payment/PayTemplateDetails.kt @@ -59,10 +59,7 @@ data class TemplateContractDetails( data class TemplateContractDetailsDefaults( val summary: String? = null, val currency: String? = null, - /** - * Amount *or* a plain currency string. - */ - val amount: String? = null, + val amount: Amount? = null, @SerialName("minimum_age") val minimumAge: Int? = null, ) @@ -98,17 +95,11 @@ class WalletTemplateDetails( @SerialName("required_currency") val requiredCurrency: String? = null, ) { - val defaultSummary get() = editableDefaults?.summary ?: templateContract.summary - - val defaultAmount get() = editableDefaults?.amount?.let { - if (it.contains(':')) { - // Amount - Amount.fromJSONString(it).amountStr - } else { - // *or* a plain currency string - Amount.zero(it).amountStr - } - } ?: templateContract.amount?.amountStr + val defaultSummary get() = editableDefaults?.summary + ?: templateContract.summary + + val defaultAmount get() = editableDefaults?.amount + ?: templateContract.amount val defaultCurrency get() = requiredCurrency ?: editableDefaults?.currency diff --git a/wallet/src/main/java/net/taler/wallet/payment/PayTemplateOrderComposable.kt b/wallet/src/main/java/net/taler/wallet/payment/PayTemplateOrderComposable.kt @@ -55,7 +55,7 @@ fun PayTemplateOrderComposable( var summary by remember { mutableStateOf(defaultSummary) } var currency by remember { mutableStateOf(defaultCurrency ?: currencies[0]) } - var amount by remember { mutableStateOf(defaultAmount ?: "0") } + var amount by remember { mutableStateOf(defaultAmount?.amountStr ?: "0") } Column(horizontalAlignment = End) { if (defaultSummary != null) OutlinedTextField( @@ -77,7 +77,8 @@ fun PayTemplateOrderComposable( amount = amount, currency = currency, currencies = currencies, - readOnlyCurrency = !templateDetails.isCurrencyEditable(), + // TODO: uncomment when merchant supports multi-currency + // readOnlyCurrency = !templateDetails.isCurrencyEditable(), readOnlyAmount = !templateDetails.isAmountEditable(), onAmountChosen = { a, c -> amount = a @@ -110,8 +111,8 @@ private fun AmountField( currencies: List<String>, amount: String, currency: String, - readOnlyAmount: Boolean = false, - readOnlyCurrency: Boolean = false, + readOnlyAmount: Boolean = true, + readOnlyCurrency: Boolean = true, onAmountChosen: (amount: String, currency: String) -> Unit, ) { Row( @@ -144,7 +145,7 @@ val defaultTemplateDetails = WalletTemplateDetails( ), editableDefaults = TemplateContractDetailsDefaults( summary = "Donation", - amount = "KUDOS:10.0", + amount = Amount.fromJSONString("KUDOS:10.0"), ), )