summaryrefslogtreecommitdiff
path: root/wallet/src/main/java/net/taler/wallet/payment
diff options
context:
space:
mode:
authorIván Ávalos <avalos@disroot.org>2024-03-04 15:20:45 -0600
committerTorsten Grote <t@grobox.de>2024-03-06 14:18:55 -0300
commit993e5abcd9a2d0f279a8c6166e392955befe4300 (patch)
tree3c55788ec05af936e2bb4ec163e9f90e557a46d8 /wallet/src/main/java/net/taler/wallet/payment
parent0574cad9c5cdfef4775af5cbd5d9d6e5d588f2ce (diff)
downloadtaler-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')
-rw-r--r--wallet/src/main/java/net/taler/wallet/payment/PayTemplateFragment.kt6
-rw-r--r--wallet/src/main/java/net/taler/wallet/payment/PaymentManager.kt3
-rw-r--r--wallet/src/main/java/net/taler/wallet/payment/PaymentResponses.kt2
-rw-r--r--wallet/src/main/java/net/taler/wallet/payment/PromptPaymentFragment.kt10
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.