summaryrefslogtreecommitdiff
path: root/wallet/src/main/java/net/taler/wallet/exchanges
diff options
context:
space:
mode:
authorIván Ávalos <avalos@disroot.org>2023-04-28 23:03:38 -0600
committerIván Ávalos <avalos@disroot.org>2023-06-27 10:49:11 -0600
commitd2248c1bd5628ffbb1ee98f570fbed4c03eff930 (patch)
tree8a7ec1d82dcf6c42d84e6304dbcb4f71208305d9 /wallet/src/main/java/net/taler/wallet/exchanges
parent2e255f70a501043307e3f14e89755e979a0d5d4c (diff)
downloadtaler-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.kt6
-rw-r--r--wallet/src/main/java/net/taler/wallet/exchanges/ExchangeManager.kt8
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