gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[taler-taler-android] 11/15: [wallet] Cache currency spec per scope info


From: gnunet
Subject: [taler-taler-android] 11/15: [wallet] Cache currency spec per scope info
Date: Wed, 27 Mar 2024 18:27:14 +0100

This is an automated email from the git hooks/post-receive script.

torsten-grote pushed a commit to branch master
in repository taler-android.

commit 18a8322c2cc7d2fcee712f29095b4db28098550e
Author: Iván Ávalos <avalos@disroot.org>
AuthorDate: Tue Mar 19 09:06:52 2024 -0600

    [wallet] Cache currency spec per scope info
    
    (cherry picked from commit ef2c87b0131138d412cd35c1595ecac4808fa155)
---
 .../main/java/net/taler/wallet/balances/BalanceManager.kt   | 13 ++++++-------
 1 file changed, 6 insertions(+), 7 deletions(-)

diff --git a/wallet/src/main/java/net/taler/wallet/balances/BalanceManager.kt 
b/wallet/src/main/java/net/taler/wallet/balances/BalanceManager.kt
index 4558396..4448490 100644
--- a/wallet/src/main/java/net/taler/wallet/balances/BalanceManager.kt
+++ b/wallet/src/main/java/net/taler/wallet/balances/BalanceManager.kt
@@ -65,7 +65,7 @@ class BalanceManager(
     private val mState = MutableLiveData<BalanceState>(BalanceState.None)
     val state: LiveData<BalanceState> = mState.distinctUntilChanged()
 
-    private var currencySpecs: Map<ScopeInfo, CurrencySpecification?>? = null
+    private val currencySpecs: MutableMap<ScopeInfo, CurrencySpecification?> = 
mutableMapOf()
 
     @UiThread
     fun loadBalances() {
@@ -79,17 +79,16 @@ class BalanceManager(
             response.onSuccess {
                 mState.postValue(BalanceState.Success(it.balances))
                 scope.launch {
-                    // Get currency spec for all balances
-                    if (currencySpecs == null) {
-                        currencySpecs = it.balances.associate { balance ->
-                            val spec = 
getCurrencySpecification(balance.scopeInfo)
-                            balance.scopeInfo to spec
+                    // Fetch missing currency specs for all balances
+                    it.balances.forEach { balance ->
+                        if (!currencySpecs.containsKey(balance.scopeInfo)) {
+                            currencySpecs[balance.scopeInfo] = 
getCurrencySpecification(balance.scopeInfo)
                         }
                     }
 
                     mState.postValue(
                         BalanceState.Success(it.balances.map { balance ->
-                            val spec = currencySpecs?.get(balance.scopeInfo)
+                            val spec = currencySpecs[balance.scopeInfo]
                             balance.copy(
                                 available = balance.available.withSpec(spec),
                                 pendingIncoming = 
balance.pendingIncoming.withSpec(spec),

-- 
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]