summaryrefslogtreecommitdiff
path: root/wallet/src/main/java/net/taler/wallet/MainViewModel.kt
diff options
context:
space:
mode:
Diffstat (limited to 'wallet/src/main/java/net/taler/wallet/MainViewModel.kt')
-rw-r--r--wallet/src/main/java/net/taler/wallet/MainViewModel.kt39
1 files changed, 11 insertions, 28 deletions
diff --git a/wallet/src/main/java/net/taler/wallet/MainViewModel.kt b/wallet/src/main/java/net/taler/wallet/MainViewModel.kt
index 46f5021..3d725d0 100644
--- a/wallet/src/main/java/net/taler/wallet/MainViewModel.kt
+++ b/wallet/src/main/java/net/taler/wallet/MainViewModel.kt
@@ -27,14 +27,13 @@ import androidx.lifecycle.viewModelScope
import com.fasterxml.jackson.databind.DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES
import com.fasterxml.jackson.databind.ObjectMapper
import com.fasterxml.jackson.module.kotlin.KotlinModule
-import net.taler.common.Amount
+import com.fasterxml.jackson.module.kotlin.readValue
import net.taler.common.Event
import net.taler.common.assertUiThread
import net.taler.common.toEvent
import net.taler.wallet.backend.WalletBackendApi
import net.taler.wallet.balances.BalanceItem
import net.taler.wallet.exchanges.ExchangeManager
-import net.taler.wallet.history.DevHistoryManager
import net.taler.wallet.payment.PaymentManager
import net.taler.wallet.pending.PendingOperationsManager
import net.taler.wallet.refund.RefundManager
@@ -55,8 +54,8 @@ private val transactionNotifications = listOf(
class MainViewModel(val app: Application) : AndroidViewModel(app) {
- private val mBalances = MutableLiveData<Map<String, BalanceItem>>()
- val balances: LiveData<Map<String, BalanceItem>> = mBalances.distinctUntilChanged()
+ private val mBalances = MutableLiveData<List<BalanceItem>>()
+ val balances: LiveData<List<BalanceItem>> = mBalances.distinctUntilChanged()
val devMode = MutableLiveData(BuildConfig.DEBUG)
val showProgressBar = MutableLiveData<Boolean>()
@@ -85,7 +84,6 @@ class MainViewModel(val app: Application) : AndroidViewModel(app) {
// refresh pending ops and history with each notification
if (devMode.value == true) {
pendingOperationsManager.getPending()
- historyManager.loadHistory()
}
}
}
@@ -94,12 +92,10 @@ class MainViewModel(val app: Application) : AndroidViewModel(app) {
.registerModule(KotlinModule())
.configure(FAIL_ON_UNKNOWN_PROPERTIES, false)
- val withdrawManager = WithdrawManager(walletBackendApi)
+ val withdrawManager = WithdrawManager(walletBackendApi, mapper)
val paymentManager = PaymentManager(walletBackendApi, mapper)
val pendingOperationsManager: PendingOperationsManager =
PendingOperationsManager(walletBackendApi)
- val historyManager: DevHistoryManager =
- DevHistoryManager(walletBackendApi, viewModelScope, mapper)
val transactionManager: TransactionManager =
TransactionManager(walletBackendApi, viewModelScope, mapper)
val refundManager = RefundManager(walletBackendApi)
@@ -123,26 +119,13 @@ class MainViewModel(val app: Application) : AndroidViewModel(app) {
@UiThread
fun loadBalances() {
showProgressBar.value = true
- walletBackendApi.sendRequest("getBalances", null) { isError, result ->
+ walletBackendApi.sendRequest("getBalances") { isError, result ->
if (isError) {
Log.e(TAG, "Error retrieving balances: ${result.toString(2)}")
return@sendRequest
}
- val balanceMap = HashMap<String, BalanceItem>()
- val byCurrency = result.getJSONObject("byCurrency")
- val currencyList = byCurrency.keys().asSequence().toList().sorted()
- for (currency in currencyList) {
- val jsonAmount = byCurrency.getJSONObject(currency)
- .getJSONObject("available")
- val amount = Amount.fromJsonObject(jsonAmount)
- val jsonAmountIncoming = byCurrency.getJSONObject(currency)
- .getJSONObject("pendingIncoming")
- val amountIncoming = Amount.fromJsonObject(jsonAmountIncoming)
- val hasPending = transactionManager.hasPending(currency)
- balanceMap[currency] = BalanceItem(amount, amountIncoming, hasPending)
- }
- mBalances.postValue(balanceMap)
- showProgressBar.postValue(false)
+ mBalances.value = mapper.readValue(result.getString("balances"))
+ showProgressBar.value = false
}
}
@@ -156,17 +139,17 @@ class MainViewModel(val app: Application) : AndroidViewModel(app) {
@UiThread
fun dangerouslyReset() {
- walletBackendApi.sendRequest("reset", null)
+ walletBackendApi.sendRequest("reset")
withdrawManager.testWithdrawalInProgress.value = false
- mBalances.value = emptyMap()
+ mBalances.value = emptyList()
}
fun startTunnel() {
- walletBackendApi.sendRequest("startTunnel", null)
+ walletBackendApi.sendRequest("startTunnel")
}
fun stopTunnel() {
- walletBackendApi.sendRequest("stopTunnel", null)
+ walletBackendApi.sendRequest("stopTunnel")
}
fun tunnelResponse(resp: String) {