summaryrefslogtreecommitdiff
path: root/wallet/src/main/java/net/taler/wallet/transactions/TransactionManager.kt
diff options
context:
space:
mode:
authorTorsten Grote <t@grobox.de>2023-03-06 15:49:21 -0300
committerTorsten Grote <t@grobox.de>2023-03-06 15:49:21 -0300
commitb226f4d3b56986f83898379d5d0fc6ef9a8971a0 (patch)
tree75df5175c0e74ce6d749498e3836330547525a9c /wallet/src/main/java/net/taler/wallet/transactions/TransactionManager.kt
parent529478734944a60af428fa64e26001881afcf899 (diff)
downloadtaler-android-b226f4d3b56986f83898379d5d0fc6ef9a8971a0.tar.gz
taler-android-b226f4d3b56986f83898379d5d0fc6ef9a8971a0.tar.bz2
taler-android-b226f4d3b56986f83898379d5d0fc6ef9a8971a0.zip
[wallet] some fixes for previous commit
Diffstat (limited to 'wallet/src/main/java/net/taler/wallet/transactions/TransactionManager.kt')
-rw-r--r--wallet/src/main/java/net/taler/wallet/transactions/TransactionManager.kt17
1 files changed, 10 insertions, 7 deletions
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<String>(null)
- val selectedTransaction = MutableLiveData<Transaction?>(null)
+ private val mSelectedTransaction = MutableLiveData<Transaction?>(null)
+ val selectedTransaction: LiveData<Transaction?> = mSelectedTransaction
private val allTransactions = HashMap<String, List<Transaction>>()
private val mTransactions = HashMap<String, MutableLiveData<TransactionsResult>>()
val transactions: LiveData<TransactionsResult>
@@ -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 {