From 4af27e7b518688b24a2ae3c84e21bc398462d54a Mon Sep 17 00:00:00 2001 From: Iván Ávalos Date: Tue, 26 Mar 2024 08:20:02 -0600 Subject: [wallet] Use TransactionManager.selectedScope instead of passing around scopeInfo (cherry picked from commit afcb6f620cbe2b1b0d70d23ee27344e74cf4bf1c) --- .../src/main/java/net/taler/wallet/ReceiveFundsFragment.kt | 7 +------ wallet/src/main/java/net/taler/wallet/SendFundsFragment.kt | 12 ++---------- .../main/java/net/taler/wallet/deposit/DepositFragment.kt | 7 ++----- .../java/net/taler/wallet/peer/OutgoingPullFragment.kt | 6 +----- .../java/net/taler/wallet/peer/OutgoingPushFragment.kt | 6 +----- wallet/src/main/res/navigation/nav_graph.xml | 14 -------------- 6 files changed, 7 insertions(+), 45 deletions(-) diff --git a/wallet/src/main/java/net/taler/wallet/ReceiveFundsFragment.kt b/wallet/src/main/java/net/taler/wallet/ReceiveFundsFragment.kt index 85e2340..9a83bc8 100644 --- a/wallet/src/main/java/net/taler/wallet/ReceiveFundsFragment.kt +++ b/wallet/src/main/java/net/taler/wallet/ReceiveFundsFragment.kt @@ -50,10 +50,8 @@ import androidx.fragment.app.Fragment import androidx.fragment.app.activityViewModels import androidx.lifecycle.lifecycleScope import androidx.navigation.fragment.findNavController -import kotlinx.serialization.encodeToString import net.taler.common.Amount import net.taler.common.CurrencySpecification -import net.taler.wallet.backend.BackendManager import net.taler.wallet.compose.AmountInputField import net.taler.wallet.compose.DEFAULT_INPUT_DECIMALS import net.taler.wallet.compose.TalerSurface @@ -111,10 +109,7 @@ class ReceiveFundsFragment : Fragment() { } private fun onPeerPull(amount: Amount) { - val bundle = bundleOf( - "amount" to amount.toJSONString(), - "scopeInfo" to BackendManager.json.encodeToString(scopeInfo), - ) + val bundle = bundleOf("amount" to amount.toJSONString()) peerManager.checkPeerPullCredit(amount) findNavController().navigate(R.id.action_receiveFunds_to_nav_peer_pull, bundle) } diff --git a/wallet/src/main/java/net/taler/wallet/SendFundsFragment.kt b/wallet/src/main/java/net/taler/wallet/SendFundsFragment.kt index a26361b..2581979 100644 --- a/wallet/src/main/java/net/taler/wallet/SendFundsFragment.kt +++ b/wallet/src/main/java/net/taler/wallet/SendFundsFragment.kt @@ -47,10 +47,8 @@ import androidx.core.os.bundleOf import androidx.fragment.app.Fragment import androidx.fragment.app.activityViewModels import androidx.navigation.fragment.findNavController -import kotlinx.serialization.encodeToString import net.taler.common.Amount import net.taler.common.CurrencySpecification -import net.taler.wallet.backend.BackendManager import net.taler.wallet.compose.AmountInputField import net.taler.wallet.compose.DEFAULT_INPUT_DECIMALS import net.taler.wallet.compose.TalerSurface @@ -85,18 +83,12 @@ class SendFundsFragment : Fragment() { } private fun onDeposit(amount: Amount) { - val bundle = bundleOf( - "amount" to amount.toJSONString(), - "scopeInfo" to BackendManager.json.encodeToString(scopeInfo), - ) + val bundle = bundleOf("amount" to amount.toJSONString()) findNavController().navigate(R.id.action_sendFunds_to_nav_deposit, bundle) } private fun onPeerPush(amount: Amount) { - val bundle = bundleOf( - "amount" to amount.toJSONString(), - "scopeInfo" to BackendManager.json.encodeToString(scopeInfo), - ) + val bundle = bundleOf("amount" to amount.toJSONString()) peerManager.checkPeerPushDebit(amount) findNavController().navigate(R.id.action_sendFunds_to_nav_peer_push, bundle) } 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 846afb9..20acee1 100644 --- a/wallet/src/main/java/net/taler/wallet/deposit/DepositFragment.kt +++ b/wallet/src/main/java/net/taler/wallet/deposit/DepositFragment.kt @@ -30,8 +30,6 @@ import net.taler.common.showError import net.taler.wallet.CURRENCY_BTC import net.taler.wallet.MainViewModel import net.taler.wallet.R -import net.taler.wallet.backend.BackendManager -import net.taler.wallet.balances.ScopeInfo import net.taler.wallet.compose.TalerSurface import net.taler.wallet.compose.collectAsStateLifecycleAware import net.taler.wallet.showError @@ -40,6 +38,7 @@ 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, @@ -49,9 +48,7 @@ class DepositFragment : Fragment() { val amount = arguments?.getString("amount")?.let { Amount.fromJSONString(it) } ?: error("no amount passed") - val scopeInfo: ScopeInfo? = arguments?.getString("scopeInfo")?.let { - BackendManager.json.decodeFromString(it) - } + val scopeInfo = transactionManager.selectedScope val spec = scopeInfo?.let { balanceManager.getSpecForScopeInfo(it) } val receiverName = arguments?.getString("receiverName") val iban = arguments?.getString("IBAN") diff --git a/wallet/src/main/java/net/taler/wallet/peer/OutgoingPullFragment.kt b/wallet/src/main/java/net/taler/wallet/peer/OutgoingPullFragment.kt index 79ab542..8f2fb96 100644 --- a/wallet/src/main/java/net/taler/wallet/peer/OutgoingPullFragment.kt +++ b/wallet/src/main/java/net/taler/wallet/peer/OutgoingPullFragment.kt @@ -31,8 +31,6 @@ import kotlinx.coroutines.launch import net.taler.common.Amount import net.taler.wallet.MainViewModel import net.taler.wallet.R -import net.taler.wallet.backend.BackendManager -import net.taler.wallet.balances.ScopeInfo import net.taler.wallet.compose.TalerSurface import net.taler.wallet.compose.collectAsStateLifecycleAware import net.taler.wallet.exchanges.ExchangeItem @@ -52,9 +50,7 @@ class OutgoingPullFragment : Fragment() { val amount = arguments?.getString("amount")?.let { Amount.fromJSONString(it) } ?: error("no amount passed") - val scopeInfo: ScopeInfo? = arguments?.getString("scopeInfo")?.let { - BackendManager.json.decodeFromString(it) - } + val scopeInfo = transactionManager.selectedScope val spec = scopeInfo?.let { balanceManager.getSpecForScopeInfo(it) } return ComposeView(requireContext()).apply { diff --git a/wallet/src/main/java/net/taler/wallet/peer/OutgoingPushFragment.kt b/wallet/src/main/java/net/taler/wallet/peer/OutgoingPushFragment.kt index fa3c79a..01fb566 100644 --- a/wallet/src/main/java/net/taler/wallet/peer/OutgoingPushFragment.kt +++ b/wallet/src/main/java/net/taler/wallet/peer/OutgoingPushFragment.kt @@ -33,8 +33,6 @@ import kotlinx.coroutines.launch import net.taler.common.Amount import net.taler.wallet.MainViewModel import net.taler.wallet.R -import net.taler.wallet.backend.BackendManager -import net.taler.wallet.balances.ScopeInfo import net.taler.wallet.compose.TalerSurface import net.taler.wallet.compose.collectAsStateLifecycleAware import net.taler.wallet.showError @@ -60,9 +58,7 @@ class OutgoingPushFragment : Fragment() { val amount = arguments?.getString("amount")?.let { Amount.fromJSONString(it) } ?: error("no amount passed") - val scopeInfo: ScopeInfo? = arguments?.getString("scopeInfo")?.let { - BackendManager.json.decodeFromString(it) - } + val scopeInfo = transactionManager.selectedScope val spec = scopeInfo?.let { balanceManager.getSpecForScopeInfo(it) } requireActivity().onBackPressedDispatcher.addCallback( diff --git a/wallet/src/main/res/navigation/nav_graph.xml b/wallet/src/main/res/navigation/nav_graph.xml index c48d93d..a968365 100644 --- a/wallet/src/main/res/navigation/nav_graph.xml +++ b/wallet/src/main/res/navigation/nav_graph.xml @@ -133,10 +133,6 @@ android:name="amount" app:argType="string" app:nullable="false" /> - - -