diff options
Diffstat (limited to 'wallet/src/main/java/net/taler/wallet/peer/TransactionPeerPullDebit.kt')
-rw-r--r-- | wallet/src/main/java/net/taler/wallet/peer/TransactionPeerPullDebit.kt | 41 |
1 files changed, 25 insertions, 16 deletions
diff --git a/wallet/src/main/java/net/taler/wallet/peer/TransactionPeerPullDebit.kt b/wallet/src/main/java/net/taler/wallet/peer/TransactionPeerPullDebit.kt index 1bbc223..b8966d4 100644 --- a/wallet/src/main/java/net/taler/wallet/peer/TransactionPeerPullDebit.kt +++ b/wallet/src/main/java/net/taler/wallet/peer/TransactionPeerPullDebit.kt @@ -21,38 +21,46 @@ import androidx.compose.runtime.Composable import androidx.compose.ui.res.stringResource import androidx.compose.ui.tooling.preview.Preview import net.taler.common.Amount +import net.taler.common.CurrencySpecification import net.taler.common.Timestamp import net.taler.wallet.R import net.taler.wallet.backend.TalerErrorCode.EXCHANGE_GENERIC_KYC_REQUIRED import net.taler.wallet.backend.TalerErrorInfo import net.taler.wallet.transactions.AmountType -import net.taler.wallet.transactions.ExtendedStatus.Pending import net.taler.wallet.transactions.PeerInfoShort +import net.taler.wallet.transactions.TransactionAction.Abort +import net.taler.wallet.transactions.TransactionAction.Retry +import net.taler.wallet.transactions.TransactionAction.Suspend import net.taler.wallet.transactions.TransactionAmountComposable import net.taler.wallet.transactions.TransactionInfoComposable +import net.taler.wallet.transactions.TransactionMajorState.Pending import net.taler.wallet.transactions.TransactionPeerComposable import net.taler.wallet.transactions.TransactionPeerPullDebit +import net.taler.wallet.transactions.TransactionState @Composable -fun TransactionPeerPullDebitComposable(t: TransactionPeerPullDebit) { - TransactionAmountComposable( - label = stringResource(id = R.string.transaction_paid), - amount = t.amountEffective, - amountType = AmountType.Negative, - ) +fun TransactionPeerPullDebitComposable(t: TransactionPeerPullDebit, spec: CurrencySpecification?) { TransactionAmountComposable( label = stringResource(id = R.string.transaction_order_total), - amount = t.amountRaw, + amount = t.amountRaw.withSpec(spec), amountType = AmountType.Neutral, ) - val fee = t.amountEffective - t.amountRaw - if (!fee.isZero()) { + + if (t.amountEffective > t.amountRaw) { + val fee = t.amountEffective - t.amountRaw TransactionAmountComposable( - label = stringResource(id = R.string.withdraw_fees), - amount = fee, + label = stringResource(id = R.string.amount_fee), + amount = fee.withSpec(spec), amountType = AmountType.Negative, ) } + + TransactionAmountComposable( + label = stringResource(id = R.string.transaction_paid), + amount = t.amountEffective.withSpec(spec), + amountType = AmountType.Negative, + ) + TransactionInfoComposable( label = stringResource(id = R.string.send_peer_purpose), info = t.info.summary ?: "", @@ -65,10 +73,11 @@ fun TransactionPeerPullDebitPreview() { val t = TransactionPeerPullDebit( transactionId = "transactionId", timestamp = Timestamp.fromMillis(System.currentTimeMillis() - 360 * 60 * 1000), - extendedStatus = Pending, + txState = TransactionState(Pending), + txActions = listOf(Retry, Suspend, Abort), exchangeBaseUrl = "https://exchange.example.org/", - amountRaw = Amount.fromDouble("TESTKUDOS", 42.1337), - amountEffective = Amount.fromDouble("TESTKUDOS", 42.23), + amountRaw = Amount.fromString("TESTKUDOS", "42.1337"), + amountEffective = Amount.fromString("TESTKUDOS", "42.23"), info = PeerInfoShort( expiration = Timestamp.fromMillis(System.currentTimeMillis() + 60 * 60 * 1000), summary = "test invoice", @@ -76,6 +85,6 @@ fun TransactionPeerPullDebitPreview() { error = TalerErrorInfo(code = EXCHANGE_GENERIC_KYC_REQUIRED), ) Surface { - TransactionPeerComposable(t, true) {} + TransactionPeerComposable(t, true, null) {} } } |