taler-android

Android apps for GNU Taler (wallet, PoS, cashier)
Log | Files | Refs | README | LICENSE

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:
Mwallet/src/main/java/net/taler/wallet/transfer/ScreenTransfer.kt | 8++++----
Mwallet/src/main/java/net/taler/wallet/transfer/TransferIBAN.kt | 22++++++++++++++--------
Mwallet/src/main/java/net/taler/wallet/transfer/TransferTaler.kt | 21+++++++++++++--------
Mwallet/src/main/java/net/taler/wallet/transfer/WireTransferDetailsFragment.kt | 5+++--
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 } )