diff options
Diffstat (limited to 'wallet/src/main/java/net/taler/wallet/transactions/TransactionPeerFragment.kt')
-rw-r--r-- | wallet/src/main/java/net/taler/wallet/transactions/TransactionPeerFragment.kt | 28 |
1 files changed, 18 insertions, 10 deletions
diff --git a/wallet/src/main/java/net/taler/wallet/transactions/TransactionPeerFragment.kt b/wallet/src/main/java/net/taler/wallet/transactions/TransactionPeerFragment.kt index 297c937..27809a7 100644 --- a/wallet/src/main/java/net/taler/wallet/transactions/TransactionPeerFragment.kt +++ b/wallet/src/main/java/net/taler/wallet/transactions/TransactionPeerFragment.kt @@ -38,6 +38,7 @@ import androidx.compose.ui.res.colorResource import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp import net.taler.common.Amount +import net.taler.common.CurrencySpecification import net.taler.common.toAbsoluteTime import net.taler.wallet.R import net.taler.wallet.compose.TalerSurface @@ -56,8 +57,10 @@ class TransactionPeerFragment : TransactionDetailFragment() { setContent { TalerSurface { val t = transactionManager.selectedTransaction.observeAsState(null).value - if (t != null) TransactionPeerComposable(t, devMode.value) { - onDeleteButtonClicked(t) + if (t != null) TransactionPeerComposable(t, devMode, + balanceManager.getSpecForCurrency(t.amountRaw.currency), + ) { + onTransitionButtonClicked(t, it) } } } @@ -65,7 +68,12 @@ class TransactionPeerFragment : TransactionDetailFragment() { } @Composable -fun TransactionPeerComposable(t: Transaction, devMode: Boolean?, onDelete: () -> Unit) { +fun TransactionPeerComposable( + t: Transaction, + devMode: Boolean, + spec: CurrencySpecification?, + onTransition: (t: TransactionAction) -> Unit, +) { val scrollState = rememberScrollState() Column( modifier = Modifier @@ -80,14 +88,14 @@ fun TransactionPeerComposable(t: Transaction, devMode: Boolean?, onDelete: () -> style = MaterialTheme.typography.bodyLarge, ) when (t) { - is TransactionPeerPullCredit -> TransactionPeerPullCreditComposable(t) - is TransactionPeerPushCredit -> TransactionPeerPushCreditComposable(t) - is TransactionPeerPullDebit -> TransactionPeerPullDebitComposable(t) - is TransactionPeerPushDebit -> TransactionPeerPushDebitComposable(t) + is TransactionPeerPullCredit -> TransactionPeerPullCreditComposable(t, spec) + is TransactionPeerPushCredit -> TransactionPeerPushCreditComposable(t, spec) + is TransactionPeerPullDebit -> TransactionPeerPullDebitComposable(t, spec) + is TransactionPeerPushDebit -> TransactionPeerPushDebitComposable(t, spec) else -> error("unexpected transaction: ${t::class.simpleName}") } - DeleteTransactionComposable(onDelete) - if (devMode == true && t.error != null) { + TransitionsComposable(t, devMode, onTransition) + if (devMode && t.error != null) { ErrorTransactionButton(error = t.error!!) } } @@ -102,7 +110,7 @@ fun TransactionAmountComposable(label: String, amount: Amount, amountType: Amoun ) Text( modifier = Modifier.padding(top = 8.dp, start = 16.dp, end = 16.dp, bottom = 16.dp), - text = if (amountType == AmountType.Negative) "-$amount" else amount.toString(), + text = amount.toString(negative = amountType == AmountType.Negative), fontSize = 24.sp, color = when (amountType) { AmountType.Positive -> colorResource(R.color.green) |