diff options
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.kt | 15 |
1 files changed, 13 insertions, 2 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 2da9ab4..8eac038 100644 --- a/wallet/src/main/java/net/taler/wallet/transactions/TransactionManager.kt +++ b/wallet/src/main/java/net/taler/wallet/transactions/TransactionManager.kt @@ -41,9 +41,9 @@ class TransactionManager( val progress: LiveData<Boolean> = mProgress var selectedCurrency: String? = null - var selectedTransaction: Transaction? = null val searchQuery = MutableLiveData<String>(null) + val selectedTransaction = MutableLiveData<Transaction?>(null) private val allTransactions = HashMap<String, List<Transaction>>() private val mTransactions = HashMap<String, MutableLiveData<TransactionsResult>>() val transactions: LiveData<TransactionsResult> @@ -84,6 +84,13 @@ class TransactionManager( mProgress.value = false liveData.value = TransactionsResult.Success(transactions) + // update selected transaction + transactions.find { + it.transactionId == selectedTransaction.value?.transactionId + }?.let { + selectedTransaction.postValue(it) + } + // update all transactions on UiThread if there was a currency if (searchQuery == null) allTransactions[currency] = transactions } @@ -102,13 +109,17 @@ class TransactionManager( transaction = result } return if (transaction != null) { - selectedTransaction = transaction + selectedTransaction.postValue(transaction) true } else { false } } + fun selectTransaction(transaction: Transaction) { + selectedTransaction.postValue(transaction) + } + fun deleteTransaction(transactionId: String) = scope.launch { api.request<Unit>("deleteTransaction") { put("transactionId", transactionId) |