diff options
author | Iván Ávalos <avalos@disroot.org> | 2024-03-04 15:20:45 -0600 |
---|---|---|
committer | Torsten Grote <t@grobox.de> | 2024-03-06 14:18:55 -0300 |
commit | 993e5abcd9a2d0f279a8c6166e392955befe4300 (patch) | |
tree | 3c55788ec05af936e2bb4ec163e9f90e557a46d8 /wallet/src/main/java/net/taler/wallet/payment | |
parent | 0574cad9c5cdfef4775af5cbd5d9d6e5d588f2ce (diff) | |
download | taler-android-993e5abcd9a2d0f279a8c6166e392955befe4300.tar.gz taler-android-993e5abcd9a2d0f279a8c6166e392955befe4300.tar.bz2 taler-android-993e5abcd9a2d0f279a8c6166e392955befe4300.zip |
[wallet] Fix serialization error of "pending" payments
bug 0008505
Diffstat (limited to 'wallet/src/main/java/net/taler/wallet/payment')
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 index e05d1bd..9712254 100644 --- 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 index 19be280..804c6a0 100644 --- 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 index 5e97f58..407f55f 100644 --- 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 index 73da394..656ca08 100644 --- 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. |