commit 81766eeeb7a03567b7af766994b9326e5448cc9d
parent 2d9a6c5f4c553c4ed46bd976764f1a16d4c3135b
Author: Iván Ávalos <avalos@disroot.org>
Date: Wed, 4 Jun 2025 20:14:49 +0200
[wallet] render correct debit IBAN in kyc-auth
Diffstat:
4 files changed, 34 insertions(+), 22 deletions(-)
diff --git a/wallet/src/main/java/net/taler/wallet/transfer/ScreenTransfer.kt b/wallet/src/main/java/net/taler/wallet/transfer/ScreenTransfer.kt
@@ -72,9 +72,9 @@ import net.taler.wallet.withdraw.QrCodeSpec.Type.EpcQr
import net.taler.wallet.withdraw.QrCodeSpec.Type.SPC
import net.taler.wallet.withdraw.TransferData
-enum class TransferContext {
- ManualWithdrawal,
- DepositKycAuth,
+sealed class TransferContext {
+ data object ManualWithdrawal : TransferContext()
+ data class DepositKycAuth(val debitPaytoUri: String) : TransferContext()
}
@Composable
@@ -417,7 +417,7 @@ fun ScreenTransferPreview(
@Preview
@Composable
fun ScreenTransferKycAuthPreview() {
- ScreenTransferPreview(transferContext = TransferContext.DepositKycAuth)
+ ScreenTransferPreview(transferContext = TransferContext.DepositKycAuth("CH120912"))
}
@Preview
diff --git a/wallet/src/main/java/net/taler/wallet/transfer/TransferIBAN.kt b/wallet/src/main/java/net/taler/wallet/transfer/TransferIBAN.kt
@@ -28,6 +28,8 @@ import androidx.compose.ui.res.stringResource
import androidx.compose.ui.unit.dp
import net.taler.common.Amount
import net.taler.wallet.R
+import net.taler.wallet.accounts.PaytoUri
+import net.taler.wallet.accounts.PaytoUriIban
import net.taler.wallet.compose.WarningLabel
import net.taler.wallet.withdraw.TransferData
import net.taler.wallet.transfer.TransferContext.*
@@ -50,18 +52,22 @@ fun TransferIBAN(
transactionAmountEffective,
)
- DepositKycAuth -> stringResource(
- R.string.send_deposit_kyc_auth_intro_bank,
- transfer.transferAmount,
- transfer.iban,
- )
+ is DepositKycAuth -> {
+ val paytoIban = PaytoUri.parse(transferContext.debitPaytoUri)
+ if (paytoIban !is PaytoUriIban) return@Column // TODO: render error
+ stringResource(
+ R.string.send_deposit_kyc_auth_intro_bank,
+ transfer.transferAmount,
+ paytoIban.iban,
+ )
+ }
},
style = MaterialTheme.typography.bodyLarge,
modifier = Modifier
.padding(vertical = 8.dp)
)
- if (transferContext == DepositKycAuth) {
+ if (transferContext is DepositKycAuth) {
WarningLabel(
modifier = Modifier.padding(
horizontal = 8.dp,
@@ -90,7 +96,7 @@ fun TransferIBAN(
),
label = when (transferContext) {
ManualWithdrawal -> stringResource(R.string.withdraw_manual_ready_warning)
- DepositKycAuth -> stringResource(R.string.send_deposit_kyc_auth_warning_subject)
+ is DepositKycAuth -> stringResource(R.string.send_deposit_kyc_auth_warning_subject)
},
)
@@ -113,7 +119,7 @@ fun TransferIBAN(
transfer.transferAmount,
)
- DepositKycAuth -> stringResource(
+ is DepositKycAuth -> stringResource(
R.string.send_deposit_kyc_auth_step_finish,
transfer.transferAmount,
transfer.iban,
diff --git a/wallet/src/main/java/net/taler/wallet/transfer/TransferTaler.kt b/wallet/src/main/java/net/taler/wallet/transfer/TransferTaler.kt
@@ -28,9 +28,10 @@ import androidx.compose.ui.res.stringResource
import androidx.compose.ui.unit.dp
import net.taler.common.Amount
import net.taler.wallet.R
+import net.taler.wallet.accounts.PaytoUri
+import net.taler.wallet.accounts.PaytoUriTalerBank
import net.taler.wallet.cleanExchange
import net.taler.wallet.compose.WarningLabel
-import net.taler.wallet.transactions.TransactionInfoComposable
import net.taler.wallet.withdraw.TransferData
import net.taler.wallet.transfer.TransferContext.*
@@ -52,18 +53,22 @@ fun TransferTaler(
transactionAmountEffective,
)
- DepositKycAuth -> stringResource(
- R.string.send_deposit_kyc_auth_intro_bank,
- transfer.transferAmount,
- transfer.account,
- )
+ is DepositKycAuth -> {
+ val paytoTaler = PaytoUri.parse(transferContext.debitPaytoUri)
+ if (paytoTaler !is PaytoUriTalerBank) return@Column // TODO: render error
+ stringResource(
+ R.string.send_deposit_kyc_auth_intro_bank,
+ transfer.transferAmount,
+ paytoTaler.account,
+ )
+ }
},
style = MaterialTheme.typography.bodyLarge,
modifier = Modifier
.padding(vertical = 8.dp)
)
- if (transferContext == DepositKycAuth) {
+ if (transferContext is DepositKycAuth) {
WarningLabel(
modifier = Modifier.padding(
horizontal = 8.dp,
@@ -90,7 +95,7 @@ fun TransferTaler(
),
label = when (transferContext) {
ManualWithdrawal -> stringResource(R.string.withdraw_manual_ready_warning)
- DepositKycAuth -> stringResource(R.string.send_deposit_kyc_auth_warning_subject)
+ is DepositKycAuth -> stringResource(R.string.send_deposit_kyc_auth_warning_subject)
},
)
diff --git a/wallet/src/main/java/net/taler/wallet/transfer/WireTransferDetailsFragment.kt b/wallet/src/main/java/net/taler/wallet/transfer/WireTransferDetailsFragment.kt
@@ -112,9 +112,10 @@ class WireTransferDetailsFragment : Fragment() {
shareClick = { onShareClick(it) },
showQrCodes = showQrCodes,
devMode = devMode == true,
- transferContext = when(selectedTx) {
+ transferContext = when(val tx = selectedTx) {
is TransactionWithdrawal -> TransferContext.ManualWithdrawal
- is TransactionDeposit -> TransferContext.DepositKycAuth
+ is TransactionDeposit -> TransferContext.DepositKycAuth(tx.kycAuthTransferInfo?.debitPaytoUri
+ ?: error("no kycAuthTransferInfo"))
else -> return@TalerSurface
}
)