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:
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, )) } },