diff options
Diffstat (limited to 'wallet/src/main/java/net/taler/wallet/balances/BalanceManager.kt')
-rw-r--r-- | wallet/src/main/java/net/taler/wallet/balances/BalanceManager.kt | 10 |
1 files changed, 7 insertions, 3 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 e964881..2930c77 100644 --- a/wallet/src/main/java/net/taler/wallet/balances/BalanceManager.kt +++ b/wallet/src/main/java/net/taler/wallet/balances/BalanceManager.kt @@ -17,6 +17,7 @@ package net.taler.wallet.balances import android.util.Log +import androidx.annotation.UiThread import androidx.lifecycle.LiveData import androidx.lifecycle.MutableLiveData import androidx.lifecycle.distinctUntilChanged @@ -49,13 +50,15 @@ class BalanceManager( private val api: WalletBackendApi, private val scope: CoroutineScope, ) { + private val mBalances = MutableLiveData<List<BalanceItem>>(emptyList()) + val balances: LiveData<List<BalanceItem>> = mBalances + private val mState = MutableLiveData<BalanceState>(BalanceState.None) val state: LiveData<BalanceState> = mState.distinctUntilChanged() - val balancesOrNull get() = (state.value as? BalanceState.Success)?.balances - + @UiThread fun loadBalances() { - mState.postValue(BalanceState.Loading) + mState.value = BalanceState.Loading scope.launch { val response = api.request("getBalances", BalanceResponse.serializer()) response.onError { @@ -64,6 +67,7 @@ class BalanceManager( } response.onSuccess { mState.postValue(BalanceState.Success(it.balances)) + mBalances.postValue(it.balances) } } } |