diff options
author | Iván Ávalos <avalos@disroot.org> | 2023-02-23 11:30:29 -0600 |
---|---|---|
committer | Torsten Grote <t@grobox.de> | 2023-03-21 11:52:36 -0300 |
commit | 1c979ef1d0efd8bdaed7dda292825c41f1d48893 (patch) | |
tree | 57f27d92794b032a5ae7513b380ccfcbd0c2ea4b /wallet/src/main/java/net/taler/wallet/peer/OutgoingPullIntroComposable.kt | |
parent | 0532aa1e215b957397432a8b0c03b7f867ab8cb0 (diff) | |
download | taler-android-1c979ef1d0efd8bdaed7dda292825c41f1d48893.tar.gz taler-android-1c979ef1d0efd8bdaed7dda292825c41f1d48893.tar.bz2 taler-android-1c979ef1d0efd8bdaed7dda292825c41f1d48893.zip |
[wallet] Add support for expiration of peer payments
bug 0007439
Diffstat (limited to 'wallet/src/main/java/net/taler/wallet/peer/OutgoingPullIntroComposable.kt')
-rw-r--r-- | wallet/src/main/java/net/taler/wallet/peer/OutgoingPullIntroComposable.kt | 24 |
1 files changed, 19 insertions, 5 deletions
diff --git a/wallet/src/main/java/net/taler/wallet/peer/OutgoingPullIntroComposable.kt b/wallet/src/main/java/net/taler/wallet/peer/OutgoingPullIntroComposable.kt index a7cd2a8..a8f24fd 100644 --- a/wallet/src/main/java/net/taler/wallet/peer/OutgoingPullIntroComposable.kt +++ b/wallet/src/main/java/net/taler/wallet/peer/OutgoingPullIntroComposable.kt @@ -50,6 +50,7 @@ import net.taler.wallet.exchanges.ExchangeItem import net.taler.wallet.transactions.AmountType import net.taler.wallet.transactions.TransactionAmountComposable import net.taler.wallet.transactions.TransactionInfoComposable +import net.taler.wallet.peer.ExpirationOption.DAYS_1 import kotlin.random.Random @OptIn(ExperimentalMaterial3Api::class) @@ -57,7 +58,7 @@ import kotlin.random.Random fun OutgoingPullIntroComposable( amount: Amount, state: OutgoingState, - onCreateInvoice: (amount: Amount, subject: String, exchange: ExchangeItem) -> Unit, + onCreateInvoice: (amount: Amount, subject: String, hours: Long, exchange: ExchangeItem) -> Unit, ) { val scrollState = rememberScrollState() Column( @@ -72,7 +73,6 @@ fun OutgoingPullIntroComposable( OutlinedTextField( modifier = Modifier .fillMaxWidth() - .padding(top = 16.dp, start = 16.dp, end = 16.dp) .focusRequester(focusRequester), singleLine = true, value = subject, @@ -96,7 +96,7 @@ fun OutgoingPullIntroComposable( Text( modifier = Modifier .fillMaxWidth() - .padding(top = 5.dp, end = 16.dp), + .padding(top = 5.dp), color = if (subject.isBlank()) MaterialTheme.colorScheme.error else Color.Unspecified, text = stringResource(R.string.char_count, subject.length, MAX_LENGTH_SUBJECT), textAlign = TextAlign.End, @@ -119,6 +119,19 @@ fun OutgoingPullIntroComposable( label = stringResource(id = R.string.withdraw_exchange), info = if (exchangeItem == null) "" else cleanExchange(exchangeItem.exchangeBaseUrl), ) + Text( + modifier = Modifier.padding(top = 16.dp, start = 16.dp, end = 16.dp), + text = stringResource(R.string.send_peer_expiration_period), + style = MaterialTheme.typography.bodyMedium, + ) + var option by rememberSaveable { mutableStateOf(DAYS_1) } + var hours by rememberSaveable { mutableStateOf(1L) } + ExpirationComposable( + modifier = Modifier.padding(top = 8.dp, bottom = 16.dp), + option = option, + hours = hours, + onOptionChange = { option = it } + ) { hours = it } Button( modifier = Modifier.padding(16.dp), enabled = subject.isNotBlank() && state is OutgoingChecked, @@ -126,6 +139,7 @@ fun OutgoingPullIntroComposable( onCreateInvoice( amount, subject, + hours, exchangeItem ?: error("clickable without exchange") ) }, @@ -142,7 +156,7 @@ fun PreviewReceiveFundsCheckingIntro() { OutgoingPullIntroComposable( Amount.fromDouble("TESTKUDOS", 42.23), if (Random.nextBoolean()) OutgoingIntro else OutgoingChecking, - ) { _, _, _ -> } + ) { _, _, _, _ -> } } } @@ -156,6 +170,6 @@ fun PreviewReceiveFundsCheckedIntro() { OutgoingPullIntroComposable( Amount.fromDouble("TESTKUDOS", 42.23), OutgoingChecked(amountRaw, amountEffective, exchangeItem) - ) { _, _, _ -> } + ) { _, _, _, _ -> } } } |