diff options
author | Iván Ávalos <avalos@disroot.org> | 2023-06-27 10:46:40 -0600 |
---|---|---|
committer | Torsten Grote <t@grobox.de> | 2023-06-28 09:01:11 -0300 |
commit | 615b7da5ee39997e8a19b5f9ac004f06ab421779 (patch) | |
tree | e405abbf11a20df3e9518efcf2c99d9f66582717 /wallet/src/main/java/net/taler/wallet/exchanges | |
parent | 43c30b4482b68a8b5073afec66b68b07b30be436 (diff) | |
download | taler-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.kt | 14 | ||||
-rw-r--r-- | wallet/src/main/java/net/taler/wallet/exchanges/ExchangeManager.kt | 14 |
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") |