From b226f4d3b56986f83898379d5d0fc6ef9a8971a0 Mon Sep 17 00:00:00 2001 From: Torsten Grote Date: Mon, 6 Mar 2023 15:49:21 -0300 Subject: [wallet] some fixes for previous commit --- .../net/taler/wallet/transactions/TransactionManager.kt | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) (limited to 'wallet/src/main/java/net/taler/wallet/transactions/TransactionManager.kt') diff --git a/wallet/src/main/java/net/taler/wallet/transactions/TransactionManager.kt b/wallet/src/main/java/net/taler/wallet/transactions/TransactionManager.kt index 8eac038..8be3fb5 100644 --- a/wallet/src/main/java/net/taler/wallet/transactions/TransactionManager.kt +++ b/wallet/src/main/java/net/taler/wallet/transactions/TransactionManager.kt @@ -43,7 +43,8 @@ class TransactionManager( var selectedCurrency: String? = null val searchQuery = MutableLiveData(null) - val selectedTransaction = MutableLiveData(null) + private val mSelectedTransaction = MutableLiveData(null) + val selectedTransaction: LiveData = mSelectedTransaction private val allTransactions = HashMap>() private val mTransactions = HashMap>() val transactions: LiveData @@ -84,11 +85,12 @@ class TransactionManager( mProgress.value = false liveData.value = TransactionsResult.Success(transactions) - // update selected transaction - transactions.find { - it.transactionId == selectedTransaction.value?.transactionId + // update selected transaction on UiThread (if it exists) + val selected = selectedTransaction.value + if (selected != null) transactions.find { + it.transactionId == selected.transactionId }?.let { - selectedTransaction.postValue(it) + mSelectedTransaction.value = it } // update all transactions on UiThread if there was a currency @@ -99,6 +101,7 @@ class TransactionManager( /** * Returns true if given [transactionId] was found and selected, false otherwise. */ + @UiThread suspend fun selectTransaction(transactionId: String): Boolean { var transaction: Transaction? = null api.request("getTransactionById", Transaction.serializer()) { @@ -109,7 +112,7 @@ class TransactionManager( transaction = result } return if (transaction != null) { - selectedTransaction.postValue(transaction) + mSelectedTransaction.value = transaction true } else { false @@ -117,7 +120,7 @@ class TransactionManager( } fun selectTransaction(transaction: Transaction) { - selectedTransaction.postValue(transaction) + mSelectedTransaction.postValue(transaction) } fun deleteTransaction(transactionId: String) = scope.launch { -- cgit v1.2.3