commit 7a62c945c82ece78115489bfc340a37c3c8fe3ec parent 4f4ad1864829cbd3ad4cfe9fa1a8683abd8ca3b8 Author: Iván Ávalos <avalos@disroot.org> Date: Wed, 2 Apr 2025 21:25:41 +0200 [wallet] Render failed(paid-by-other) state Diffstat:
3 files changed, 12 insertions(+), 0 deletions(-)
diff --git a/wallet/src/main/java/net/taler/wallet/transactions/TransactionState.kt b/wallet/src/main/java/net/taler/wallet/transactions/TransactionState.kt @@ -102,4 +102,7 @@ enum class TransactionMinorState { @SerialName("exchange-wait-reserve") ExchangeWaitReserve, + + @SerialName("paid-by-other") + PaidByOther, } diff --git a/wallet/src/main/java/net/taler/wallet/transactions/TransactionStateComposable.kt b/wallet/src/main/java/net/taler/wallet/transactions/TransactionStateComposable.kt @@ -27,7 +27,9 @@ import androidx.compose.material3.ShapeDefaults import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.Color import androidx.compose.ui.platform.LocalContext +import androidx.compose.ui.res.colorResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.tooling.preview.Preview @@ -50,6 +52,7 @@ import net.taler.wallet.transactions.TransactionMinorState.BalanceKycInit import net.taler.wallet.transactions.TransactionMinorState.BalanceKycRequired import net.taler.wallet.transactions.TransactionMinorState.BankConfirmTransfer import net.taler.wallet.transactions.TransactionMinorState.KycRequired +import net.taler.wallet.transactions.TransactionMinorState.PaidByOther import net.taler.wallet.transactions.WithdrawalDetails.ManualTransfer @Composable @@ -60,6 +63,7 @@ fun TransactionStateComposable( ) { val context = LocalContext.current val message = when (state) { + TransactionState(Done) -> stringResource(R.string.transaction_state_done) TransactionState(Pending, BankConfirmTransfer) -> stringResource(R.string.transaction_state_pending_bank) TransactionState(Pending, BalanceKycInit) -> stringResource(R.string.transaction_preparing_kyc) TransactionState(Pending, KycRequired) -> stringResource(R.string.transaction_state_pending_kyc_bank) @@ -73,18 +77,21 @@ fun TransactionStateComposable( } else stringResource(R.string.transaction_state_aborted) TransactionState(Aborting) -> stringResource(R.string.transaction_state_aborting) TransactionState(Suspended) -> stringResource(R.string.transaction_state_suspended) + TransactionState(Failed, PaidByOther) -> stringResource(R.string.payment_already_paid) TransactionState(Failed) -> stringResource(R.string.transaction_state_failed) TransactionState(Expired) -> stringResource(R.string.transaction_state_expired) else -> return } val cardColor = when (state.major) { + Done -> colorResource(R.color.green) Aborted, Aborting, Failed, Expired -> MaterialTheme.colorScheme.errorContainer Pending, Suspended -> MaterialTheme.colorScheme.surfaceVariant else -> return } val textColor = when (state.major) { + Done -> Color.White Aborted, Aborting, Failed, Expired -> MaterialTheme.colorScheme.onErrorContainer Pending, Suspended -> MaterialTheme.colorScheme.onSurfaceVariant else -> return @@ -126,6 +133,7 @@ fun TransactionStateComposablePreview() { TransactionStateComposable(modifier, state = TransactionState(Aborted)) TransactionStateComposable(modifier, state = TransactionState(Aborting)) TransactionStateComposable(modifier, state = TransactionState(Suspended)) + TransactionStateComposable(modifier, state = TransactionState(Failed, PaidByOther)) TransactionStateComposable(modifier, state = TransactionState(Failed)) TransactionStateComposable(modifier, state = TransactionState(Expired)) TransactionStateComposable(modifier, state = TransactionState(Done)) diff --git a/wallet/src/main/res/values/strings.xml b/wallet/src/main/res/values/strings.xml @@ -145,6 +145,7 @@ GNU Taler is immune against many types of fraud, such as phishing of credit card <string name="transaction_state_aborted">This transaction was aborted</string> <string name="transaction_state_aborted_manual">This transaction was aborted. If you already sent money to this exchange, it will be transferred back to you in %1$s</string> <string name="transaction_state_aborting">This transaction is aborting</string> + <string name="transaction_state_done">This transaction was completed successfully</string> <string name="transaction_state_expired">This transaction has expired</string> <string name="transaction_state_failed">This transaction has failed or been abandoned</string> <string name="transaction_state_pending">This transaction is pending</string>