commit f1e0237c028aa2138505881802ffe53be3260d51
parent 339c929a113d90ec42f618c9d55bb13260176fe5
Author: Iván Ávalos <avalos@disroot.org>
Date: Thu, 3 Apr 2025 17:18:21 +0200
[wallet] render repurchase state
Diffstat:
4 files changed, 32 insertions(+), 13 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
@@ -103,6 +103,9 @@ enum class TransactionMinorState {
@SerialName("exchange-wait-reserve")
ExchangeWaitReserve,
- @SerialName("paid-by-other")
- PaidByOther,
+ @SerialName("repurchase")
+ Repurchase,
+
+ @SerialName("unknown")
+ Unknown;
}
diff --git a/wallet/src/main/java/net/taler/wallet/transactions/TransactionStateComposable.kt b/wallet/src/main/java/net/taler/wallet/transactions/TransactionStateComposable.kt
@@ -52,7 +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.TransactionMinorState.Repurchase
import net.taler.wallet.transactions.WithdrawalDetails.ManualTransfer
@Composable
@@ -77,23 +77,33 @@ 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, Repurchase) -> 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
+ val cardColor = when (state) {
+ TransactionState(Done) -> colorResource(R.color.green)
+ TransactionState(Pending),
+ TransactionState(Suspended),
+ TransactionState(Failed, Repurchase) -> MaterialTheme.colorScheme.surfaceVariant
+ TransactionState(Aborted),
+ TransactionState(Aborting),
+ TransactionState(Failed),
+ TransactionState(Expired) -> MaterialTheme.colorScheme.errorContainer
else -> return
}
- val textColor = when (state.major) {
- Done -> Color.White
- Aborted, Aborting, Failed, Expired -> MaterialTheme.colorScheme.onErrorContainer
- Pending, Suspended -> MaterialTheme.colorScheme.onSurfaceVariant
+ val textColor = when (state) {
+ TransactionState(Done) -> Color.White
+ TransactionState(Pending),
+ TransactionState(Suspended),
+ TransactionState(Failed, Repurchase) -> MaterialTheme.colorScheme.onSurfaceVariant
+ TransactionState(Aborted),
+ TransactionState(Aborting),
+ TransactionState(Failed),
+ TransactionState(Expired) -> MaterialTheme.colorScheme.onErrorContainer
else -> return
}
@@ -133,7 +143,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, Repurchase))
TransactionStateComposable(modifier, state = TransactionState(Failed))
TransactionStateComposable(modifier, state = TransactionState(Expired))
TransactionStateComposable(modifier, state = TransactionState(Done))
diff --git a/wallet/src/main/java/net/taler/wallet/transactions/TransactionsComposable.kt b/wallet/src/main/java/net/taler/wallet/transactions/TransactionsComposable.kt
@@ -96,6 +96,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.Repurchase
import net.taler.wallet.transactions.TransactionsResult.Error
import net.taler.wallet.transactions.TransactionsResult.None
import net.taler.wallet.transactions.TransactionsResult.Success
@@ -432,6 +433,10 @@ fun TransactionExtraInfo(tx: Transaction) {
color = MaterialTheme.colorScheme.error,
)
+ tx.txState.minor == Repurchase -> Text(
+ stringResource(R.string.payment_repurchase),
+ )
+
tx.txState.major == Failed -> Text(
stringResource(R.string.payment_failed),
color = MaterialTheme.colorScheme.error,
diff --git a/wallet/src/main/res/values/strings.xml b/wallet/src/main/res/values/strings.xml
@@ -203,6 +203,7 @@ GNU Taler is immune against many types of fraud, such as phishing of credit card
<string name="payment_pay_template_title">Customize your order</string>
<string name="payment_pending">Payment not completed, it will be retried</string>
<string name="payment_prompt_title">Review payment</string>
+ <string name="payment_repurchase">Repurchase</string>
<!-- including <amount> <tax name> -->
<string name="payment_tax">incl. %1$s %2$s</string>
<string name="payment_template_error">Error creating order</string>