gnunet-svn
[Top][All Lists]
Advanced

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

[taler-taler-android] 02/03: [wallet] Handle add and list exchange error


From: gnunet
Subject: [taler-taler-android] 02/03: [wallet] Handle add and list exchange errors separately
Date: Wed, 28 Jun 2023 14:07:41 +0200

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 615b7da5ee39997e8a19b5f9ac004f06ab421779
Author: Iván Ávalos <avalos@disroot.org>
AuthorDate: Tue Jun 27 10:46:40 2023 -0600

    [wallet] Handle add and list exchange errors separately
---
 .../net/taler/wallet/exchanges/ExchangeListFragment.kt     | 14 +++++++++++---
 .../java/net/taler/wallet/exchanges/ExchangeManager.kt     | 14 ++++++--------
 wallet/src/main/res/values/strings.xml                     |  1 +
 3 files changed, 18 insertions(+), 11 deletions(-)

diff --git 
a/wallet/src/main/java/net/taler/wallet/exchanges/ExchangeListFragment.kt 
b/wallet/src/main/java/net/taler/wallet/exchanges/ExchangeListFragment.kt
index 7e1b7cc..439ec2f 100644
--- a/wallet/src/main/java/net/taler/wallet/exchanges/ExchangeListFragment.kt
+++ b/wallet/src/main/java/net/taler/wallet/exchanges/ExchangeListFragment.kt
@@ -69,13 +69,17 @@ open class ExchangeListFragment : Fragment(), 
ExchangeClickListener {
         exchangeManager.exchanges.observe(viewLifecycleOwner) { exchanges ->
             onExchangeUpdate(exchanges)
         }
-        exchangeManager.errorEvent.observe(viewLifecycleOwner, EventObserver { 
error ->
+        exchangeManager.addError.observe(viewLifecycleOwner, EventObserver { 
error ->
+            onAddExchangeFailed()
             if (model.devMode.value == true) {
                 showError(error)
             }
         })
-        exchangeManager.addError.observe(viewLifecycleOwner, EventObserver { 
error ->
-            if (error) onAddExchangeFailed()
+        exchangeManager.listError.observe(viewLifecycleOwner, EventObserver { 
error ->
+            onListExchangeFailed()
+            if (model.devMode.value == true) {
+                showError(error)
+            }
         })
     }
 
@@ -94,6 +98,10 @@ open class ExchangeListFragment : Fragment(), 
ExchangeClickListener {
         Toast.makeText(requireContext(), R.string.exchange_add_error, 
LENGTH_LONG).show()
     }
 
+    private fun onListExchangeFailed() {
+        Toast.makeText(requireContext(), R.string.exchange_list_error, 
LENGTH_LONG).show()
+    }
+
     override fun onExchangeSelected(item: ExchangeItem) {
         throw AssertionError("must not get triggered here")
     }
diff --git a/wallet/src/main/java/net/taler/wallet/exchanges/ExchangeManager.kt 
b/wallet/src/main/java/net/taler/wallet/exchanges/ExchangeManager.kt
index a97e188..2c92967 100644
--- a/wallet/src/main/java/net/taler/wallet/exchanges/ExchangeManager.kt
+++ b/wallet/src/main/java/net/taler/wallet/exchanges/ExchangeManager.kt
@@ -47,11 +47,11 @@ class ExchangeManager(
     private val mExchanges = MutableLiveData<List<ExchangeItem>>()
     val exchanges: LiveData<List<ExchangeItem>> get() = list()
 
-    private val mAddError = MutableLiveData<Event<Boolean>>()
-    val addError: LiveData<Event<Boolean>> = mAddError
+    private val mAddError = MutableLiveData<Event<TalerErrorInfo>>()
+    val addError: LiveData<Event<TalerErrorInfo>> = mAddError
 
-    private val mErrorEvent = MutableLiveData<Event<TalerErrorInfo>>()
-    val errorEvent: LiveData<Event<TalerErrorInfo>> = mErrorEvent
+    private val mListError = MutableLiveData<Event<TalerErrorInfo>>()
+    val listError: LiveData<Event<TalerErrorInfo>> = mListError
 
     var withdrawalExchange: ExchangeItem? = null
 
@@ -60,8 +60,7 @@ class ExchangeManager(
         scope.launch {
             val response = api.request("listExchanges", 
ExchangeListResponse.serializer())
             response.onError {
-                mErrorEvent.value = it.toEvent()
-                throw AssertionError("Wallet core failed to return exchanges! 
${it.userFacingMsg}")
+                mListError.value = it.toEvent()
             }.onSuccess {
                 Log.d(TAG, "Exchange list: ${it.exchanges}")
                 mProgress.value = false
@@ -78,8 +77,7 @@ class ExchangeManager(
         }.onError {
             Log.e(TAG, "Error adding exchange: $it")
             mProgress.value = false
-            mErrorEvent.value = it.toEvent()
-            mAddError.value = true.toEvent()
+            mAddError.value = it.toEvent()
         }.onSuccess {
             mProgress.value = false
             Log.d(TAG, "Exchange $exchangeUrl added")
diff --git a/wallet/src/main/res/values/strings.xml 
b/wallet/src/main/res/values/strings.xml
index 70b89c5..185a723 100644
--- a/wallet/src/main/res/values/strings.xml
+++ b/wallet/src/main/res/values/strings.xml
@@ -207,6 +207,7 @@ GNU Taler is immune against many types of fraud, such as 
phishing of credit card
     <string name="exchange_list_add">Add exchange</string>
     <string name="exchange_add_url">Enter address of exchange</string>
     <string name="exchange_add_error">Could not add exchange</string>
+    <string name="exchange_list_error">Could not list exchanges</string>
     <string name="exchange_menu_manual_withdraw">Withdraw</string>
 
     <string name="exchange_fee_withdrawal_fee_label">Withdrawal Fee:</string>

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