diff options
author | Iván Ávalos <avalos@disroot.org> | 2024-03-06 10:36:30 -0600 |
---|---|---|
committer | Torsten Grote <t@grobox.de> | 2024-03-06 14:18:57 -0300 |
commit | 621351c4c9a68e7b14e64e77b5717016be302aa2 (patch) | |
tree | d29d098a09b697988051ae04ba139346cc632597 /wallet/src/main/java/net/taler/wallet/payment/PayTemplateComposable.kt | |
parent | 917a0175af8493b893486c0b6b2a001ce1b952c6 (diff) | |
download | taler-android-621351c4c9a68e7b14e64e77b5717016be302aa2.tar.gz taler-android-621351c4c9a68e7b14e64e77b5717016be302aa2.tar.bz2 taler-android-621351c4c9a68e7b14e64e77b5717016be302aa2.zip |
[wallet] Improve pending payments UX and error handling
Diffstat (limited to 'wallet/src/main/java/net/taler/wallet/payment/PayTemplateComposable.kt')
-rw-r--r-- | wallet/src/main/java/net/taler/wallet/payment/PayTemplateComposable.kt | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/wallet/src/main/java/net/taler/wallet/payment/PayTemplateComposable.kt b/wallet/src/main/java/net/taler/wallet/payment/PayTemplateComposable.kt index e2a8a64..b6c2fb1 100644 --- a/wallet/src/main/java/net/taler/wallet/payment/PayTemplateComposable.kt +++ b/wallet/src/main/java/net/taler/wallet/payment/PayTemplateComposable.kt @@ -57,7 +57,7 @@ fun PayTemplateComposable( PayTemplateError(stringResource(R.string.receive_amount_invalid)) } else if (currencies.isEmpty()) { PayTemplateError(stringResource(R.string.payment_balance_insufficient)) - } else when (payStatus) { + } else when (val p = payStatus) { is PayStatus.None -> PayTemplateOrderComposable( currencies = currencies, defaultSummary = defaultSummary, @@ -70,7 +70,14 @@ fun PayTemplateComposable( is PayStatus.Loading -> PayTemplateLoading() is PayStatus.AlreadyPaid -> PayTemplateError(stringResource(R.string.payment_already_paid)) is PayStatus.InsufficientBalance -> PayTemplateError(stringResource(R.string.payment_balance_insufficient)) - is PayStatus.Error -> {} // handled in fragment will show bottom sheet FIXME white page? + is PayStatus.Pending -> { + val error = p.error + PayTemplateError(if (error != null) { + stringResource(R.string.payment_error, error.userFacingMsg) + } else { + stringResource(R.string.payment_template_error) + }) + } is PayStatus.Prepared -> {} // handled in fragment, will redirect is PayStatus.Success -> {} // handled by other UI flow, no need for content here } |