taler-android

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

commit ca6e5a539d234c7ac1d40f5cdaebad736bab4447
parent ccbed51906477d306f705391125e4a408de58378
Author: Iván Ávalos <avalos@disroot.org>
Date:   Wed, 14 Aug 2024 13:47:50 +0200

[wallet] fixed NullPointerException in withdrawals

Diffstat:
Mwallet/src/main/java/net/taler/wallet/withdraw/PromptWithdrawFragment.kt | 28+++++++++++++++++-----------
Mwallet/src/main/java/net/taler/wallet/withdraw/WithdrawManager.kt | 1+
2 files changed, 18 insertions(+), 11 deletions(-)

diff --git a/wallet/src/main/java/net/taler/wallet/withdraw/PromptWithdrawFragment.kt b/wallet/src/main/java/net/taler/wallet/withdraw/PromptWithdrawFragment.kt @@ -123,22 +123,26 @@ class PromptWithdrawFragment: Fragment() { val spec = remember(s) { defaultExchange?.scopeInfo?.let { scopeInfo -> balanceManager.getSpecForScopeInfo(scopeInfo) - } ?: balanceManager.getSpecForCurrency(s.currency!!) + } ?: s.currency?.let { + balanceManager.getSpecForCurrency(it) + } } WithdrawalShowInfo( status = s, - currency = s.currency!!, + currency = s.currency ?: error("no currency specified"), spec = spec, onSelectExchange = { selectExchange() }, onSelectAmount = { amount -> - withdrawManager.getWithdrawalDetails( - amount = amount, - exchangeBaseUrl = s.exchangeBaseUrl!!, - loading = false, - ) + if (s.exchangeBaseUrl != null) { + withdrawManager.getWithdrawalDetails( + amount = amount, + exchangeBaseUrl = s.exchangeBaseUrl, + loading = false, + ) + } }, onTosReview = { // TODO: rewrite ToS review screen in compose @@ -200,10 +204,12 @@ class PromptWithdrawFragment: Fragment() { Success -> lifecycleScope.launch { Snackbar.make(requireView(), R.string.withdraw_initiated, LENGTH_LONG).show() - if (transactionManager.selectTransaction(status.transactionId!!)) { - findNavController().navigate(R.id.action_promptWithdraw_to_nav_transactions_detail_withdrawal) - } else { - findNavController().navigate(R.id.action_promptWithdraw_to_nav_main) + status.transactionId?.let { + if (transactionManager.selectTransaction(it)) { + findNavController().navigate(R.id.action_promptWithdraw_to_nav_transactions_detail_withdrawal) + } else { + findNavController().navigate(R.id.action_promptWithdraw_to_nav_main) + } } } diff --git a/wallet/src/main/java/net/taler/wallet/withdraw/WithdrawManager.kt b/wallet/src/main/java/net/taler/wallet/withdraw/WithdrawManager.kt @@ -333,6 +333,7 @@ class WithdrawManager( status = TosReviewRequired, amountInfo = amountInfo ?: value.amountInfo, tosDetails = tos, + currency = amountInfo?.amountRaw?.currency, ) } }