diff options
author | Iván Ávalos <avalos@disroot.org> | 2023-04-28 23:03:38 -0600 |
---|---|---|
committer | Iván Ávalos <avalos@disroot.org> | 2023-06-27 10:49:11 -0600 |
commit | d2248c1bd5628ffbb1ee98f570fbed4c03eff930 (patch) | |
tree | 8a7ec1d82dcf6c42d84e6304dbcb4f71208305d9 /wallet/src/main/java/net/taler/wallet/exchanges | |
parent | 2e255f70a501043307e3f14e89755e979a0d5d4c (diff) | |
download | taler-android-d2248c1bd5628ffbb1ee98f570fbed4c03eff930.tar.gz taler-android-d2248c1bd5628ffbb1ee98f570fbed4c03eff930.tar.bz2 taler-android-d2248c1bd5628ffbb1ee98f570fbed4c03eff930.zip |
[wallet] Show errors as JSON
bug 0007606
Diffstat (limited to 'wallet/src/main/java/net/taler/wallet/exchanges')
-rw-r--r-- | wallet/src/main/java/net/taler/wallet/exchanges/ExchangeListFragment.kt | 6 | ||||
-rw-r--r-- | wallet/src/main/java/net/taler/wallet/exchanges/ExchangeManager.kt | 8 |
2 files changed, 13 insertions, 1 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 21e31f4..7e1b7cc 100644 --- a/wallet/src/main/java/net/taler/wallet/exchanges/ExchangeListFragment.kt +++ b/wallet/src/main/java/net/taler/wallet/exchanges/ExchangeListFragment.kt @@ -33,6 +33,7 @@ import net.taler.common.fadeOut import net.taler.wallet.MainViewModel import net.taler.wallet.R import net.taler.wallet.databinding.FragmentExchangeListBinding +import net.taler.wallet.showError open class ExchangeListFragment : Fragment(), ExchangeClickListener { @@ -68,6 +69,11 @@ open class ExchangeListFragment : Fragment(), ExchangeClickListener { exchangeManager.exchanges.observe(viewLifecycleOwner) { exchanges -> onExchangeUpdate(exchanges) } + exchangeManager.errorEvent.observe(viewLifecycleOwner, EventObserver { error -> + if (model.devMode.value == true) { + showError(error) + } + }) exchangeManager.addError.observe(viewLifecycleOwner, EventObserver { error -> if (error) onAddExchangeFailed() }) 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 4a57068..a97e188 100644 --- a/wallet/src/main/java/net/taler/wallet/exchanges/ExchangeManager.kt +++ b/wallet/src/main/java/net/taler/wallet/exchanges/ExchangeManager.kt @@ -28,6 +28,7 @@ import kotlinx.serialization.Serializable import net.taler.common.Event import net.taler.common.toEvent import net.taler.wallet.TAG +import net.taler.wallet.backend.TalerErrorInfo import net.taler.wallet.backend.WalletBackendApi @Serializable @@ -49,6 +50,9 @@ class ExchangeManager( private val mAddError = MutableLiveData<Event<Boolean>>() val addError: LiveData<Event<Boolean>> = mAddError + private val mErrorEvent = MutableLiveData<Event<TalerErrorInfo>>() + val errorEvent: LiveData<Event<TalerErrorInfo>> = mErrorEvent + var withdrawalExchange: ExchangeItem? = null private fun list(): LiveData<List<ExchangeItem>> { @@ -56,6 +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}") }.onSuccess { Log.d(TAG, "Exchange list: ${it.exchanges}") @@ -71,8 +76,9 @@ class ExchangeManager( api.request<Unit>("addExchange") { put("exchangeBaseUrl", exchangeUrl) }.onError { - mProgress.value = false Log.e(TAG, "Error adding exchange: $it") + mProgress.value = false + mErrorEvent.value = it.toEvent() mAddError.value = true.toEvent() }.onSuccess { mProgress.value = false |