summaryrefslogtreecommitdiff
path: root/wallet/src/main/java/net/taler/wallet/exchanges
diff options
context:
space:
mode:
authorIván Ávalos <avalos@disroot.org>2023-06-27 10:46:40 -0600
committerTorsten Grote <t@grobox.de>2023-06-28 09:01:11 -0300
commit615b7da5ee39997e8a19b5f9ac004f06ab421779 (patch)
treee405abbf11a20df3e9518efcf2c99d9f66582717 /wallet/src/main/java/net/taler/wallet/exchanges
parent43c30b4482b68a8b5073afec66b68b07b30be436 (diff)
downloadtaler-android-615b7da5ee39997e8a19b5f9ac004f06ab421779.tar.gz
taler-android-615b7da5ee39997e8a19b5f9ac004f06ab421779.tar.bz2
taler-android-615b7da5ee39997e8a19b5f9ac004f06ab421779.zip
[wallet] Handle add and list exchange errors separately
Diffstat (limited to 'wallet/src/main/java/net/taler/wallet/exchanges')
-rw-r--r--wallet/src/main/java/net/taler/wallet/exchanges/ExchangeListFragment.kt14
-rw-r--r--wallet/src/main/java/net/taler/wallet/exchanges/ExchangeManager.kt14
2 files changed, 17 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")