From 4f665e694b819f7999bb96919d8b468c2a3de48b Mon Sep 17 00:00:00 2001 From: Torsten Grote Date: Fri, 17 Jul 2020 16:25:14 -0300 Subject: [wallet] add UI for making manual withdrawal via exchange --- .../net/taler/wallet/exchanges/ExchangeManager.kt | 35 ++++++++++++++++------ 1 file changed, 26 insertions(+), 9 deletions(-) (limited to 'wallet/src/main/java/net/taler/wallet/exchanges/ExchangeManager.kt') 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 4b93c40..cdd5590 100644 --- a/wallet/src/main/java/net/taler/wallet/exchanges/ExchangeManager.kt +++ b/wallet/src/main/java/net/taler/wallet/exchanges/ExchangeManager.kt @@ -21,6 +21,7 @@ import androidx.lifecycle.LiveData import androidx.lifecycle.MutableLiveData import com.fasterxml.jackson.databind.ObjectMapper import com.fasterxml.jackson.module.kotlin.readValue +import net.taler.common.Amount import net.taler.common.Event import net.taler.common.toEvent import net.taler.wallet.TAG @@ -41,6 +42,23 @@ class ExchangeManager( private val mAddError = MutableLiveData>() val addError: LiveData> = mAddError + var withdrawalExchange: ExchangeItem? = null + + private fun list(): LiveData> { + mProgress.value = true + walletBackendApi.sendRequest("listExchanges", JSONObject()) { isError, result -> + if (isError) { + throw AssertionError("Wallet core failed to return exchanges!") + } else { + val exchanges: List = mapper.readValue(result.getString("exchanges")) + Log.d(TAG, "Exchange list: $exchanges") + mProgress.value = false + mExchanges.value = exchanges + } + } + return mExchanges + } + fun add(exchangeUrl: String) { mProgress.value = true val args = JSONObject().apply { put("exchangeBaseUrl", exchangeUrl) } @@ -56,19 +74,18 @@ class ExchangeManager( } } - private fun list(): LiveData> { - mProgress.value = true - walletBackendApi.sendRequest("listExchanges", JSONObject()) { isError, result -> + fun getWithdrawalDetails(exchangeItem: ExchangeItem, amount: Amount) { + val args = JSONObject().apply { + put("exchangeBaseUrl", exchangeItem.exchangeBaseUrl) + put("amount", amount.toJSONString()) + } + walletBackendApi.sendRequest("getWithdrawalDetailsForAmount", args) { isError, result -> if (isError) { - throw AssertionError("Wallet core failed to return exchanges!") + Log.e(TAG, "$result") } else { - val exchanges: List = mapper.readValue(result.getString("exchanges")) - Log.d(TAG, "Exchange list: $exchanges") - mProgress.value = false - mExchanges.value = exchanges + Log.e(TAG, "$result") } } - return mExchanges } } -- cgit v1.2.3