From e3edd5f58fe1d2f3f70d1ff20f58564f8990bcc2 Mon Sep 17 00:00:00 2001 From: Torsten Grote Date: Tue, 19 May 2020 14:59:03 -0300 Subject: [wallet] show transaction errors to user --- .../wallet/transactions/TransactionAdapter.kt | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) (limited to 'wallet/src/main/java/net/taler/wallet/transactions/TransactionAdapter.kt') diff --git a/wallet/src/main/java/net/taler/wallet/transactions/TransactionAdapter.kt b/wallet/src/main/java/net/taler/wallet/transactions/TransactionAdapter.kt index e6dad6f..d670b74 100644 --- a/wallet/src/main/java/net/taler/wallet/transactions/TransactionAdapter.kt +++ b/wallet/src/main/java/net/taler/wallet/transactions/TransactionAdapter.kt @@ -92,15 +92,29 @@ internal class TransactionAdapter( icon.setImageResource(transaction.icon) title.text = transaction.getTitle(context) - if (transaction is TransactionWithdrawal && !transaction.confirmed) { + bindExtraInfo(transaction) + time.text = transaction.timestamp.ms.toRelativeTime(context) + bindAmount(transaction) + pendingView.visibility = if (transaction.pending) VISIBLE else GONE + } + + private fun bindExtraInfo(transaction: Transaction) { + if (transaction.error != null) { + extraInfoView.text = + context.getString(R.string.payment_error, transaction.error.text) + extraInfoView.setTextColor(red) + extraInfoView.visibility = VISIBLE + } else if (transaction is TransactionWithdrawal && !transaction.confirmed) { extraInfoView.setText(R.string.withdraw_waiting_confirm) + extraInfoView.setTextColor(amountColor) + extraInfoView.visibility = VISIBLE + } else if (transaction is TransactionPayment && transaction.status != PaymentStatus.Paid && transaction.status != PaymentStatus.Accepted) { + extraInfoView.setText(if (transaction.status == PaymentStatus.Aborted) R.string.payment_aborted else R.string.payment_failed) + extraInfoView.setTextColor(amountColor) extraInfoView.visibility = VISIBLE } else { extraInfoView.visibility = GONE } - time.text = transaction.timestamp.ms.toRelativeTime(context) - bindAmount(transaction) - pendingView.visibility = if (transaction.pending) VISIBLE else GONE } private fun bindAmount(transaction: Transaction) { -- cgit v1.2.3