gnunet-svn
[Top][All Lists]
Advanced

[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.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]