commit 6a199a0e5e0e6ff7a7d0cd155178332d22087712 parent 67f44d7488f5ac192f9210c3c7e62d9f73fa876b Author: Iván Ávalos <avalos@disroot.org> Date: Tue, 10 Sep 2024 17:54:51 +0200 [wallet] error screen when no deposit wire methods are configured Diffstat:
4 files changed, 31 insertions(+), 3 deletions(-)
diff --git a/wallet/src/main/java/net/taler/wallet/deposit/DepositFragment.kt b/wallet/src/main/java/net/taler/wallet/deposit/DepositFragment.kt @@ -88,6 +88,7 @@ class DepositFragment : Fragment() { presetIban = iban, validateIban = depositManager::validateIban, onMakeDeposit = depositManager::makeDeposit, + onClose = { findNavController().popBackStack() }, ) LaunchedEffect(Unit) { diff --git a/wallet/src/main/java/net/taler/wallet/deposit/MakeDepositComposable.kt b/wallet/src/main/java/net/taler/wallet/deposit/MakeDepositComposable.kt @@ -45,6 +45,10 @@ import androidx.compose.ui.unit.sp import kotlinx.coroutines.launch import net.taler.common.Amount import net.taler.wallet.R +import net.taler.wallet.backend.TalerErrorCode +import net.taler.wallet.backend.TalerErrorInfo +import net.taler.wallet.peer.OutgoingError +import net.taler.wallet.peer.PeerErrorComposable import net.taler.wallet.transactions.AmountType.Negative import net.taler.wallet.transactions.AmountType.Positive import net.taler.wallet.transactions.TransactionAmountComposable @@ -59,9 +63,14 @@ fun MakeDepositComposable( presetIban: String? = null, validateIban: suspend (iban: String) -> Boolean, onMakeDeposit: (Amount, String) -> Unit, + onClose: () -> Unit, ) { - // TODO: show some placeholder - if (supportedWireTypes.isEmpty()) return + if (supportedWireTypes.isEmpty()) { + return MakeDepositErrorComposable( + message = stringResource(R.string.send_deposit_no_methods_error), + onClose = onClose, + ) + } val scrollState = rememberScrollState() Column( @@ -230,6 +239,20 @@ fun MakeDepositWireTypeChooser( } } +@Composable +fun MakeDepositErrorComposable( + message: String, + onClose: () -> Unit, +) { + PeerErrorComposable( + state = OutgoingError(info = TalerErrorInfo( + message = message, + code = TalerErrorCode.UNKNOWN, + )), + onClose = onClose, + ) +} + @Preview @Composable fun PreviewMakeDepositComposable() { @@ -245,6 +268,7 @@ fun PreviewMakeDepositComposable() { amount = Amount.fromString("TESTKUDOS", "42.23"), validateIban = { true }, onMakeDeposit = { _, _ -> }, + onClose = {}, ) } } diff --git a/wallet/src/main/java/net/taler/wallet/peer/OutgoingPullComposable.kt b/wallet/src/main/java/net/taler/wallet/peer/OutgoingPullComposable.kt @@ -16,6 +16,7 @@ package net.taler.wallet.peer +import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.fillMaxSize @@ -201,8 +202,9 @@ fun PeerErrorComposable(state: OutgoingError, onClose: () -> Unit) { Column( modifier = Modifier .padding(16.dp) - .fillMaxWidth(), + .fillMaxSize(), horizontalAlignment = CenterHorizontally, + verticalArrangement = Arrangement.Center, ) { Text( color = MaterialTheme.colorScheme.error, diff --git a/wallet/src/main/res/values/strings.xml b/wallet/src/main/res/values/strings.xml @@ -221,6 +221,7 @@ GNU Taler is immune against many types of fraud, such as phishing of credit card <string name="send_deposit_iban">IBAN</string> <string name="send_deposit_iban_error">IBAN is invalid</string> <string name="send_deposit_name">Account holder</string> + <string name="send_deposit_no_methods_error">No supported wire methods</string> <string name="send_deposit_taler">x-taler-bank</string> <string name="send_deposit_title">Deposit to a bank account</string> <string name="send_intro">Choose where to send money to:</string>