taler-android

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

commit 167d0d8ac6ed2bfe01151de45336cc1e45102080
parent f4c1c4ac636113671c23bfe2b152f1eb0634f569
Author: Iván Ávalos <avalos@disroot.org>
Date:   Wed, 29 May 2024 09:55:44 -0600

[wallet] Nullify non-editable values in template

bug 0008854

Diffstat:
Mwallet/src/main/java/net/taler/wallet/payment/PayTemplateDetails.kt | 17++++++++---------
Mwallet/src/main/java/net/taler/wallet/payment/PayTemplateFragment.kt | 2+-
Mwallet/src/main/java/net/taler/wallet/payment/PayTemplateOrderComposable.kt | 5+++--
3 files changed, 12 insertions(+), 12 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 @@ -110,17 +110,16 @@ class WalletTemplateDetails( fun isAmountEditable() = editableDefaults?.amount != null fun isCurrencyEditable() = requiredCurrency == null && editableDefaults?.currency != null + + // NOTE: it is important to nullify non-editable values! + fun toTemplateParams() = TemplateParams( + amount = if(isAmountEditable()) templateContract.amount else null, + summary = if(isSummaryEditable()) templateContract.summary else null, + ) } @Serializable data class TemplateParams( val amount: Amount? = null, val summary: String? = null, -) { - companion object { - fun fromTemplateDetails(details: WalletTemplateDetails) = TemplateParams( - amount = details.templateContract.amount, - summary = details.templateContract.summary, - ) - } -} -\ No newline at end of file +) +\ No newline at end of file diff --git a/wallet/src/main/java/net/taler/wallet/payment/PayTemplateFragment.kt b/wallet/src/main/java/net/taler/wallet/payment/PayTemplateFragment.kt @@ -80,7 +80,7 @@ class PayTemplateFragment : Fragment() { } is PayStatus.Checked -> if (payStatus.details.editableDefaults.isNullOrEmpty()) { - createOrder(TemplateParams.fromTemplateDetails(payStatus.details)) + createOrder(payStatus.details.toTemplateParams()) } else -> {} diff --git a/wallet/src/main/java/net/taler/wallet/payment/PayTemplateOrderComposable.kt b/wallet/src/main/java/net/taler/wallet/payment/PayTemplateOrderComposable.kt @@ -93,9 +93,10 @@ fun PayTemplateOrderComposable( when (val res = onCreateAmount(amount, currency)) { is AmountResult.InsufficientBalance -> onError(R.string.payment_balance_insufficient) is AmountResult.InvalidAmount -> onError(R.string.amount_invalid) + // NOTE: it is important to nullify non-editable values! is AmountResult.Success -> onSubmit(TemplateParams( - summary = summary, - amount = res.amount, + summary = if (templateDetails.isSummaryEditable()) summary else null, + amount = if(templateDetails.isAmountEditable()) res.amount else null, )) } },