[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[taler-taler-android] 03/04: [wallet] some fixes for previous commit
From: |
gnunet |
Subject: |
[taler-taler-android] 03/04: [wallet] some fixes for previous commit |
Date: |
Mon, 06 Mar 2023 19:57:09 +0100 |
This is an automated email from the git hooks/post-receive script.
torsten-grote pushed a commit to branch master
in repository taler-android.
commit b226f4d3b56986f83898379d5d0fc6ef9a8971a0
Author: Torsten Grote <t@grobox.de>
AuthorDate: Mon Mar 6 15:49:21 2023 -0300
[wallet] some fixes for previous commit
---
.../transactions/TransactionDepositFragment.kt | 11 +++-------
.../wallet/transactions/TransactionManager.kt | 17 ++++++++-------
.../wallet/transactions/TransactionPeerFragment.kt | 11 +++-------
.../wallet/transactions/TransactionTipFragment.kt | 11 +++-------
.../transactions/TransactionWithdrawalFragment.kt | 24 ++++++++++++----------
5 files changed, 32 insertions(+), 42 deletions(-)
diff --git
a/wallet/src/main/java/net/taler/wallet/transactions/TransactionDepositFragment.kt
b/wallet/src/main/java/net/taler/wallet/transactions/TransactionDepositFragment.kt
index 4ca20fd..dd09b4c 100644
---
a/wallet/src/main/java/net/taler/wallet/transactions/TransactionDepositFragment.kt
+++
b/wallet/src/main/java/net/taler/wallet/transactions/TransactionDepositFragment.kt
@@ -20,7 +20,6 @@ import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
-import androidx.compose.runtime.getValue
import androidx.compose.runtime.livedata.observeAsState
import androidx.compose.ui.platform.ComposeView
import net.taler.wallet.compose.TalerSurface
@@ -35,13 +34,9 @@ class TransactionDepositFragment :
TransactionDetailFragment() {
): View = ComposeView(requireContext()).apply {
setContent {
TalerSurface {
- val t: Transaction? by
transactionManager.selectedTransaction.observeAsState()
- if (t != null) {
- TransactionDepositComposable(t as TransactionDeposit) {
- onDeleteButtonClicked(t!!)
- }
- } else {
- error("No transaction")
+ val t =
transactionManager.selectedTransaction.observeAsState().value
+ if (t is TransactionDeposit) TransactionDepositComposable(t) {
+ onDeleteButtonClicked(t)
}
}
}
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 {
diff --git
a/wallet/src/main/java/net/taler/wallet/transactions/TransactionPeerFragment.kt
b/wallet/src/main/java/net/taler/wallet/transactions/TransactionPeerFragment.kt
index 58e8f31..3d99774 100644
---
a/wallet/src/main/java/net/taler/wallet/transactions/TransactionPeerFragment.kt
+++
b/wallet/src/main/java/net/taler/wallet/transactions/TransactionPeerFragment.kt
@@ -28,7 +28,6 @@ import androidx.compose.foundation.verticalScroll
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
-import androidx.compose.runtime.getValue
import androidx.compose.runtime.livedata.observeAsState
import androidx.compose.ui.Alignment.Companion.CenterHorizontally
import androidx.compose.ui.Modifier
@@ -56,13 +55,9 @@ class TransactionPeerFragment : TransactionDetailFragment() {
): View = ComposeView(requireContext()).apply {
setContent {
TalerSurface {
- val t: Transaction? by
transactionManager.selectedTransaction.observeAsState(null)
- if (t != null) {
- TransactionPeerComposable(t!!) {
- onDeleteButtonClicked(t!!)
- }
- } else {
- error("No transaction")
+ val t =
transactionManager.selectedTransaction.observeAsState(null).value
+ if (t != null) TransactionPeerComposable(t) {
+ onDeleteButtonClicked(t)
}
}
}
diff --git
a/wallet/src/main/java/net/taler/wallet/transactions/TransactionTipFragment.kt
b/wallet/src/main/java/net/taler/wallet/transactions/TransactionTipFragment.kt
index 1eb7fea..91af805 100644
---
a/wallet/src/main/java/net/taler/wallet/transactions/TransactionTipFragment.kt
+++
b/wallet/src/main/java/net/taler/wallet/transactions/TransactionTipFragment.kt
@@ -29,7 +29,6 @@ import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Surface
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
-import androidx.compose.runtime.getValue
import androidx.compose.runtime.livedata.observeAsState
import androidx.compose.ui.Alignment.Companion.CenterHorizontally
import androidx.compose.ui.Modifier
@@ -53,13 +52,9 @@ class TransactionTipFragment : TransactionDetailFragment() {
): View = ComposeView(requireContext()).apply {
setContent {
TalerSurface {
- val t by
transactionManager.selectedTransaction.observeAsState(null)
- if (t != null && t is TransactionTip) {
- TransactionTipComposable(t as TransactionTip) {
- onDeleteButtonClicked(t!!)
- }
- } else {
- error("No or wrong transaction")
+ val t =
transactionManager.selectedTransaction.observeAsState(null).value
+ if (t is TransactionTip) TransactionTipComposable(t) {
+ onDeleteButtonClicked(t)
}
}
}
diff --git
a/wallet/src/main/java/net/taler/wallet/transactions/TransactionWithdrawalFragment.kt
b/wallet/src/main/java/net/taler/wallet/transactions/TransactionWithdrawalFragment.kt
index 14b84b2..2778126 100644
---
a/wallet/src/main/java/net/taler/wallet/transactions/TransactionWithdrawalFragment.kt
+++
b/wallet/src/main/java/net/taler/wallet/transactions/TransactionWithdrawalFragment.kt
@@ -58,14 +58,14 @@ class TransactionWithdrawalFragment :
TransactionDetailFragment() {
ui.effectiveAmountLabel.text = getString(R.string.withdraw_total)
ui.effectiveAmountView.text = t.amountEffective.toString()
setupConfirmWithdrawalButton(t)
- setupActionButton(t)
- ui.chosenAmountLabel.text = getString(R.string.amount_chosen)
- ui.chosenAmountView.text =
- getString(R.string.amount_positive, t.amountRaw.toString())
- val fee = t.amountRaw - t.amountEffective
- ui.feeView.text = getString(R.string.amount_negative, fee.toString())
- ui.exchangeView.text = cleanExchange(t.exchangeBaseUrl)
- if (t.pending) {
+ setupActionButton(t)
+ ui.chosenAmountLabel.text = getString(R.string.amount_chosen)
+ ui.chosenAmountView.text =
+ getString(R.string.amount_positive, t.amountRaw.toString())
+ val fee = t.amountRaw - t.amountEffective
+ ui.feeView.text = getString(R.string.amount_negative,
fee.toString())
+ ui.exchangeView.text = cleanExchange(t.exchangeBaseUrl)
+ if (t.pending) {
ui.deleteButton.setIconResource(R.drawable.ic_cancel)
ui.deleteButton.setText(R.string.cancel)
}
@@ -75,13 +75,15 @@ class TransactionWithdrawalFragment :
TransactionDetailFragment() {
}
}
+ private val isPending get() =
transactionManager.selectedTransaction.value?.pending == true
+
override val deleteDialogTitle: Int
- get() = if (transactionManager.selectedTransaction.value?.pending ==
true) R.string.cancel else super.deleteDialogTitle
+ get() = if (isPending) R.string.cancel else super.deleteDialogTitle
override val deleteDialogMessage: Int
- get() = if (transactionManager.selectedTransaction.value?.pending ==
true) R.string.transactions_cancel_dialog_message
+ get() = if (isPending) R.string.transactions_cancel_dialog_message
else super.deleteDialogMessage
override val deleteDialogButton: Int
- get() = if (transactionManager.selectedTransaction.value?.pending ==
true) R.string.ok else super.deleteDialogButton
+ get() = if (isPending) R.string.ok else super.deleteDialogButton
private fun setupConfirmWithdrawalButton(t: TransactionWithdrawal) {
if (t.pending && !t.confirmed) {
--
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.