commit b23458e8d3dcdb3b4c5ef2e3ad1a00ee2adff621
parent c4900c03c11e8b6e94cf948639d77345e2b34076
Author: Iván Ávalos <avalos@disroot.org>
Date: Sun, 15 Sep 2024 13:58:24 +0200
[wallet] fix crash on withdrawal
bug 0009157
Diffstat:
2 files changed, 8 insertions(+), 11 deletions(-)
diff --git a/wallet/src/main/java/net/taler/wallet/peer/IncomingPushPaymentFragment.kt b/wallet/src/main/java/net/taler/wallet/peer/IncomingPushPaymentFragment.kt
@@ -41,7 +41,6 @@ import net.taler.wallet.showError
class IncomingPushPaymentFragment : Fragment() {
private val model: MainViewModel by activityViewModels()
private val peerManager get() = model.peerManager
- private val exchangeManager get() = model.exchangeManager
override fun onCreateView(
inflater: LayoutInflater,
@@ -92,10 +91,6 @@ class IncomingPushPaymentFragment : Fragment() {
override fun onResume() {
super.onResume()
- // FIXME: not sure that this is the best approach!
- exchangeManager.exchanges.observe(viewLifecycleOwner) {
- // detect ToS acceptation
- peerManager.refreshPeerPushCreditTos()
- }
+ peerManager.refreshPeerPushCreditTos()
}
}
diff --git a/wallet/src/main/java/net/taler/wallet/withdraw/PromptWithdrawFragment.kt b/wallet/src/main/java/net/taler/wallet/withdraw/PromptWithdrawFragment.kt
@@ -100,6 +100,7 @@ class PromptWithdrawFragment: Fragment() {
private val selectExchangeDialog = SelectExchangeDialogFragment()
private var startup: Boolean = true
+ private var navigating: Boolean = false
override fun onCreateView(
inflater: LayoutInflater,
@@ -206,6 +207,10 @@ class PromptWithdrawFragment: Fragment() {
Success -> lifecycleScope.launch {
Snackbar.make(requireView(), R.string.withdraw_initiated, LENGTH_LONG).show()
status.transactionId?.let {
+ if (!navigating) {
+ navigating = true
+ } else return@let
+
if (transactionManager.selectTransaction(it)) {
findNavController().navigate(R.id.action_promptWithdraw_to_nav_transactions_detail_withdrawal)
} else {
@@ -227,11 +232,8 @@ class PromptWithdrawFragment: Fragment() {
override fun onResume() {
super.onResume()
- // FIXME: not sure this is an ultra reliable approach!
- exchangeManager.exchanges.observe(viewLifecycleOwner) {
- // detect ToS acceptation
- withdrawManager.refreshTosStatus()
- }
+ // detect ToS acceptation
+ withdrawManager.refreshTosStatus()
}
private fun selectExchange() {