diff options
Diffstat (limited to 'wallet/src/main/java/net/taler/wallet/deposit/DepositFragment.kt')
-rw-r--r-- | wallet/src/main/java/net/taler/wallet/deposit/DepositFragment.kt | 22 |
1 files changed, 14 insertions, 8 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 index c4b302f..20acee1 100644 --- a/wallet/src/main/java/net/taler/wallet/deposit/DepositFragment.kt +++ b/wallet/src/main/java/net/taler/wallet/deposit/DepositFragment.kt @@ -32,10 +32,13 @@ import net.taler.wallet.MainViewModel import net.taler.wallet.R import net.taler.wallet.compose.TalerSurface import net.taler.wallet.compose.collectAsStateLifecycleAware +import net.taler.wallet.showError class DepositFragment : Fragment() { private val model: MainViewModel by activityViewModels() private val depositManager get() = model.depositManager + private val balanceManager get() = model.balanceManager + private val transactionManager get() = model.transactionManager override fun onCreateView( inflater: LayoutInflater, @@ -45,12 +48,12 @@ class DepositFragment : Fragment() { val amount = arguments?.getString("amount")?.let { Amount.fromJSONString(it) } ?: error("no amount passed") + val scopeInfo = transactionManager.selectedScope + val spec = scopeInfo?.let { balanceManager.getSpecForScopeInfo(it) } val receiverName = arguments?.getString("receiverName") val iban = arguments?.getString("IBAN") - val bic = arguments?.getString("BIC") ?: "" - if (receiverName != null && iban != null) { - onDepositButtonClicked(amount, receiverName, iban, bic) + onDepositButtonClicked(amount, receiverName, iban) } return ComposeView(requireContext()).apply { setContent { @@ -58,14 +61,14 @@ class DepositFragment : Fragment() { val state = depositManager.depositState.collectAsStateLifecycleAware() if (amount.currency == CURRENCY_BTC) MakeBitcoinDepositComposable( state = state.value, - amount = amount, + amount = amount.withSpec(spec), bitcoinAddress = null, onMakeDeposit = { amount, bitcoinAddress -> depositManager.onDepositButtonClicked(amount, bitcoinAddress) }, ) else MakeDepositComposable( state = state.value, - amount = amount, + amount = amount.withSpec(spec), presetName = receiverName, presetIban = iban, onMakeDeposit = this@DepositFragment::onDepositButtonClicked, @@ -80,7 +83,11 @@ class DepositFragment : Fragment() { lifecycleScope.launchWhenStarted { depositManager.depositState.collect { state -> if (state is DepositState.Error) { - showError(state.msg) + if (model.devMode.value == false) { + showError(state.error.userFacingMsg) + } else { + showError(state.error) + } } else if (state is DepositState.Success) { findNavController().navigate(R.id.action_nav_deposit_to_nav_main) } @@ -104,8 +111,7 @@ class DepositFragment : Fragment() { amount: Amount, receiverName: String, iban: String, - bic: String, ) { - depositManager.onDepositButtonClicked(amount, receiverName, iban, bic) + depositManager.onDepositButtonClicked(amount, receiverName, iban) } } |