commit 993e5abcd9a2d0f279a8c6166e392955befe4300 parent 0574cad9c5cdfef4775af5cbd5d9d6e5d588f2ce Author: Iván Ávalos <avalos@disroot.org> Date: Mon, 4 Mar 2024 15:20:45 -0600 [wallet] Fix serialization error of "pending" payments bug 0008505 Diffstat:
4 files changed, 13 insertions(+), 8 deletions(-)
diff --git a/wallet/src/main/java/net/taler/wallet/payment/PayTemplateFragment.kt b/wallet/src/main/java/net/taler/wallet/payment/PayTemplateFragment.kt @@ -84,12 +84,14 @@ class PayTemplateFragment : Fragment() { findNavController().navigate(R.id.action_promptPayTemplate_to_promptPayment) } - is PayStatus.Error -> { + is PayStatus.Error -> if (payStatus.error != null) { if (model.devMode.value == true) { showError(payStatus.error) } else { - showError(R.string.payment_template_error, payStatus.error.userFacingMsg) + showError(R.string.payment_error, payStatus.error.userFacingMsg) } + } else { + showError(getString(R.string.payment_template_error)) } else -> {} diff --git a/wallet/src/main/java/net/taler/wallet/payment/PaymentManager.kt b/wallet/src/main/java/net/taler/wallet/payment/PaymentManager.kt @@ -57,7 +57,7 @@ sealed class PayStatus { data class Error( val transactionId: String? = null, - val error: TalerErrorInfo, + val error: TalerErrorInfo? = null, ) : PayStatus() data class Success( val transactionId: String, @@ -105,6 +105,7 @@ class PaymentManager( transactionId = response.transactionId, currency = currency, ) + // TODO: is pending == error always? is ConfirmPayResult.Pending -> PayStatus.Error( transactionId = response.transactionId, error = response.lastError, diff --git a/wallet/src/main/java/net/taler/wallet/payment/PaymentResponses.kt b/wallet/src/main/java/net/taler/wallet/payment/PaymentResponses.kt @@ -79,6 +79,6 @@ sealed class ConfirmPayResult { @SerialName("pending") data class Pending( val transactionId: String, - val lastError: TalerErrorInfo, + val lastError: TalerErrorInfo? = null, ) : ConfirmPayResult() } diff --git a/wallet/src/main/java/net/taler/wallet/payment/PromptPaymentFragment.kt b/wallet/src/main/java/net/taler/wallet/payment/PromptPaymentFragment.kt @@ -133,11 +133,13 @@ class PromptPaymentFragment : Fragment(), ProductImageClickListener { } is PayStatus.Error -> { showLoading(false) - if (model.devMode.value == true) { - showError(payStatus.error) + if (payStatus.error != null) { + if (model.devMode.value == true) { + showError(payStatus.error) + } + ui.details.errorView.text = getString(R.string.payment_error, payStatus.error.userFacingMsg) + ui.details.errorView.fadeIn() } - ui.details.errorView.text = getString(R.string.payment_error, payStatus.error.userFacingMsg) - ui.details.errorView.fadeIn() } is PayStatus.None -> { // No payment active.