gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[taler-taler-android] branch master updated: [wallet] Improve selecting


From: gnunet
Subject: [taler-taler-android] branch master updated: [wallet] Improve selecting transaction after bank withdrawal
Date: Wed, 22 Feb 2023 13:01:46 +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.

The following commit(s) were added to refs/heads/master by this push:
     new 79d52ac  [wallet] Improve selecting transaction after bank withdrawal
79d52ac is described below

commit 79d52ac4960e99d7b67f6435b03b010ed536e161
Author: Torsten Grote <t@grobox.de>
AuthorDate: Wed Feb 22 09:01:31 2023 -0300

    [wallet] Improve selecting transaction after bank withdrawal
---
 .../wallet/transactions/TransactionManager.kt      | 23 +++++++++++++++-------
 .../wallet/withdraw/PromptWithdrawFragment.kt      |  5 +----
 2 files changed, 17 insertions(+), 11 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 a65d9a6..2da9ab4 100644
--- a/wallet/src/main/java/net/taler/wallet/transactions/TransactionManager.kt
+++ b/wallet/src/main/java/net/taler/wallet/transactions/TransactionManager.kt
@@ -90,14 +90,23 @@ class TransactionManager(
     }
 
     /**
-     * Returns true if given [transactionId] was found for given [currency] 
and selected.
+     * Returns true if given [transactionId] was found and selected, false 
otherwise.
      */
-    fun selectTransaction(currency: String, transactionId: String): Boolean {
-        val t = allTransactions[currency]?.find {
-            it.transactionId == transactionId
-        } ?: return false
-        selectedTransaction = t
-        return true
+    suspend fun selectTransaction(transactionId: String): Boolean {
+        var transaction: Transaction? = null
+        api.request("getTransactionById", Transaction.serializer()) {
+            put("transactionId", transactionId)
+        }.onError {
+            Log.e(TAG, "Error getting transaction $it")
+        }.onSuccess { result ->
+            transaction = result
+        }
+        return if (transaction != null) {
+            selectedTransaction = transaction
+            true
+        } else {
+            false
+        }
     }
 
     fun deleteTransaction(transactionId: String) = scope.launch {
diff --git 
a/wallet/src/main/java/net/taler/wallet/withdraw/PromptWithdrawFragment.kt 
b/wallet/src/main/java/net/taler/wallet/withdraw/PromptWithdrawFragment.kt
index abe9562..fd67e71 100644
--- a/wallet/src/main/java/net/taler/wallet/withdraw/PromptWithdrawFragment.kt
+++ b/wallet/src/main/java/net/taler/wallet/withdraw/PromptWithdrawFragment.kt
@@ -92,11 +92,8 @@ class PromptWithdrawFragment : Fragment() {
             model.showProgressBar.value = false
             withdrawManager.withdrawStatus.value = null
             lifecycleScope.launch {
-                // FIXME this is hacky and blocks the UI thread, not good for 
many transactions
-                // load new transactions first and wait for result
-                transactionManager.loadTransactions().join()
                 // now select new transaction based on currency and ID
-                if (transactionManager.selectTransaction(status.currency, 
status.transactionId)) {
+                if 
(transactionManager.selectTransaction(status.transactionId)) {
                     
findNavController().navigate(R.id.action_promptWithdraw_to_nav_transactions_detail_withdrawal)
                 } else {
                     
findNavController().navigate(R.id.action_promptWithdraw_to_nav_main)

-- 
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]