diff options
Diffstat (limited to 'wallet/src/main/java/net/taler/wallet/deposit/TransactionDepositComposable.kt')
-rw-r--r-- | wallet/src/main/java/net/taler/wallet/deposit/TransactionDepositComposable.kt | 50 |
1 files changed, 33 insertions, 17 deletions
diff --git a/wallet/src/main/java/net/taler/wallet/deposit/TransactionDepositComposable.kt b/wallet/src/main/java/net/taler/wallet/deposit/TransactionDepositComposable.kt index 3d59b35..817dfac 100644 --- a/wallet/src/main/java/net/taler/wallet/deposit/TransactionDepositComposable.kt +++ b/wallet/src/main/java/net/taler/wallet/deposit/TransactionDepositComposable.kt @@ -32,20 +32,31 @@ import androidx.compose.ui.res.stringResource import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import net.taler.common.Amount +import net.taler.common.CurrencySpecification import net.taler.common.Timestamp import net.taler.common.toAbsoluteTime 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.DeleteTransactionComposable import net.taler.wallet.transactions.ErrorTransactionButton -import net.taler.wallet.transactions.ExtendedStatus.Pending +import net.taler.wallet.transactions.TransactionAction +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.TransactionDeposit +import net.taler.wallet.transactions.TransactionMajorState.Pending +import net.taler.wallet.transactions.TransactionState +import net.taler.wallet.transactions.TransitionsComposable @Composable -fun TransactionDepositComposable(t: TransactionDeposit, devMode: Boolean?, onDelete: () -> Unit) { +fun TransactionDepositComposable( + t: TransactionDeposit, + devMode: Boolean, + spec: CurrencySpecification?, + onTransition: (t: TransactionAction) -> Unit, +) { val scrollState = rememberScrollState() Column( modifier = Modifier @@ -59,26 +70,30 @@ fun TransactionDepositComposable(t: TransactionDeposit, devMode: Boolean?, onDel text = t.timestamp.ms.toAbsoluteTime(context).toString(), style = MaterialTheme.typography.bodyLarge, ) + TransactionAmountComposable( - label = stringResource(id = R.string.transaction_paid), - amount = t.amountEffective, - amountType = AmountType.Negative, - ) - TransactionAmountComposable( - label = stringResource(id = R.string.transaction_order_total), - amount = t.amountRaw, + label = stringResource(id = R.string.amount_chosen), + amount = t.amountRaw.withSpec(spec), amountType = AmountType.Neutral, ) + val fee = t.amountEffective - t.amountRaw if (!fee.isZero()) { TransactionAmountComposable( label = stringResource(id = R.string.withdraw_fees), - amount = fee, + amount = fee.withSpec(spec), amountType = AmountType.Negative, ) } - DeleteTransactionComposable(onDelete) - if (devMode == true && t.error != null) { + + TransactionAmountComposable( + label = stringResource(id = R.string.amount_sent), + amount = t.amountEffective.withSpec(spec), + amountType = AmountType.Negative, + ) + + TransitionsComposable(t, devMode, onTransition) + if (devMode && t.error != null) { ErrorTransactionButton(error = t.error) } } @@ -90,14 +105,15 @@ fun TransactionDepositComposablePreview() { val t = TransactionDeposit( transactionId = "transactionId", timestamp = Timestamp.fromMillis(System.currentTimeMillis() - 360 * 60 * 1000), - extendedStatus = Pending, + txState = TransactionState(Pending), + txActions = listOf(Retry, Suspend, Abort), depositGroupId = "fooBar", - amountRaw = Amount.fromDouble("TESTKUDOS", 42.1337), - amountEffective = Amount.fromDouble("TESTKUDOS", 42.23), + amountRaw = Amount.fromString("TESTKUDOS", "42.1337"), + amountEffective = Amount.fromString("TESTKUDOS", "42.23"), targetPaytoUri = "https://exchange.example.org/peer/pull/credit", error = TalerErrorInfo(code = EXCHANGE_GENERIC_KYC_REQUIRED), ) Surface { - TransactionDepositComposable(t, true) {} + TransactionDepositComposable(t, true, null) {} } } |