diff options
author | Torsten Grote <t@grobox.de> | 2020-07-20 10:55:56 -0300 |
---|---|---|
committer | Torsten Grote <t@grobox.de> | 2020-07-20 10:55:56 -0300 |
commit | de69768ac75e1608601751bd0a187e6a687dbdd2 (patch) | |
tree | ce1f8104347ae9741444aad5394cfa6f794536d7 | |
parent | 35fb3686d411869ac4854f1f56efc46a21c7c42b (diff) | |
download | taler-android-de69768ac75e1608601751bd0a187e6a687dbdd2.tar.gz taler-android-de69768ac75e1608601751bd0a187e6a687dbdd2.tar.bz2 taler-android-de69768ac75e1608601751bd0a187e6a687dbdd2.zip |
[wallet] move withdrawal code to withdraw package
Also show payment options from exchange's payto URIs
-rw-r--r-- | wallet/src/main/java/net/taler/wallet/exchanges/ExchangeManager.kt | 14 | ||||
-rw-r--r-- | wallet/src/main/java/net/taler/wallet/withdraw/ManualWithdrawFragment.kt (renamed from wallet/src/main/java/net/taler/wallet/exchanges/ManualWithdrawFragment.kt) | 12 | ||||
-rw-r--r-- | wallet/src/main/java/net/taler/wallet/withdraw/WithdrawManager.kt | 16 | ||||
-rw-r--r-- | wallet/src/main/res/navigation/nav_graph.xml | 2 | ||||
-rw-r--r-- | wallet/src/main/res/values/strings.xml | 2 |
5 files changed, 27 insertions, 19 deletions
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 cdd5590..41c8f2c 100644 --- a/wallet/src/main/java/net/taler/wallet/exchanges/ExchangeManager.kt +++ b/wallet/src/main/java/net/taler/wallet/exchanges/ExchangeManager.kt @@ -74,18 +74,4 @@ class ExchangeManager( } } - 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) { - Log.e(TAG, "$result") - } else { - Log.e(TAG, "$result") - } - } - } - } diff --git a/wallet/src/main/java/net/taler/wallet/exchanges/ManualWithdrawFragment.kt b/wallet/src/main/java/net/taler/wallet/withdraw/ManualWithdrawFragment.kt index c3f201d..55f931d 100644 --- a/wallet/src/main/java/net/taler/wallet/exchanges/ManualWithdrawFragment.kt +++ b/wallet/src/main/java/net/taler/wallet/withdraw/ManualWithdrawFragment.kt @@ -14,8 +14,9 @@ * GNU Taler; see the file COPYING. If not, see <http://www.gnu.org/licenses/> */ -package net.taler.wallet.exchanges +package net.taler.wallet.withdraw +import android.net.Uri import android.os.Bundle import android.view.LayoutInflater import android.view.View @@ -30,12 +31,14 @@ import net.taler.common.hideKeyboard import net.taler.wallet.MainViewModel import net.taler.wallet.R import net.taler.wallet.scanQrCode +import java.util.Locale class ManualWithdrawFragment : Fragment() { private val model: MainViewModel by activityViewModels() private val exchangeManager by lazy { model.exchangeManager } private val exchangeItem by lazy { requireNotNull(exchangeManager.withdrawalExchange) } + private val withdrawManager by lazy { model.withdrawManager } override fun onCreateView( inflater: LayoutInflater, container: ViewGroup?, @@ -47,14 +50,17 @@ class ManualWithdrawFragment : Fragment() { override fun onViewCreated(view: View, savedInstanceState: Bundle?) { qrCodeButton.setOnClickListener { scanQrCode(requireActivity()) } currencyView.text = exchangeItem.currency + val paymentOptions = exchangeItem.paytoUris.mapNotNull {paytoUri -> + Uri.parse(paytoUri).authority?.toUpperCase(Locale.getDefault()) + }.joinToString(separator = "\n", prefix = "• ") paymentOptionsLabel.text = - getString(R.string.withdraw_manual_payment_options, exchangeItem.name) + getString(R.string.withdraw_manual_payment_options, exchangeItem.name, paymentOptions) checkFeesButton.setOnClickListener { val value = amountView.text.toString().toLong() val amount = Amount(exchangeItem.currency, value, 0) amountView.hideKeyboard() Toast.makeText(view.context, "Not implemented: $amount", LENGTH_SHORT).show() - exchangeManager.getWithdrawalDetails(exchangeItem, amount) + withdrawManager.getWithdrawalDetails(exchangeItem, amount) } } diff --git a/wallet/src/main/java/net/taler/wallet/withdraw/WithdrawManager.kt b/wallet/src/main/java/net/taler/wallet/withdraw/WithdrawManager.kt index 75e4daa..ea65e7c 100644 --- a/wallet/src/main/java/net/taler/wallet/withdraw/WithdrawManager.kt +++ b/wallet/src/main/java/net/taler/wallet/withdraw/WithdrawManager.kt @@ -21,6 +21,7 @@ import androidx.lifecycle.MutableLiveData import net.taler.common.Amount import net.taler.wallet.TAG import net.taler.wallet.backend.WalletBackendApi +import net.taler.wallet.exchanges.ExchangeItem import net.taler.wallet.withdraw.WithdrawStatus.ReceivedDetails import org.json.JSONObject @@ -63,6 +64,21 @@ class WithdrawManager(private val walletBackendApi: WalletBackendApi) { } } + fun getWithdrawalDetails(exchangeItem: ExchangeItem, amount: Amount) { + val args = JSONObject().apply { + put("exchangeBaseUrl", exchangeItem.exchangeBaseUrl) + put("amount", amount.toJSONString()) + } + walletBackendApi.sendRequest("getWithdrawalDetailsForAmount", args) { isError, result -> + // {"rawAmount":"TESTKUDOS:5","effectiveAmount":"TESTKUDOS:4.8","paytoUris":["payto:\/\/x-taler-bank\/bank.test.taler.net\/Exchange"],"tosAccepted":false} + if (isError) { + Log.e(TAG, "$result") + } else { + Log.e(TAG, "$result") + } + } + } + fun getWithdrawalInfo(talerWithdrawUri: String) { val args = JSONObject().apply { put("talerWithdrawUri", talerWithdrawUri) diff --git a/wallet/src/main/res/navigation/nav_graph.xml b/wallet/src/main/res/navigation/nav_graph.xml index c9a98f0..93db557 100644 --- a/wallet/src/main/res/navigation/nav_graph.xml +++ b/wallet/src/main/res/navigation/nav_graph.xml @@ -74,7 +74,7 @@ <fragment android:id="@+id/nav_exchange_manual_withdrawal" - android:name="net.taler.wallet.exchanges.ManualWithdrawFragment" + android:name="net.taler.wallet.withdraw.ManualWithdrawFragment" android:label="@string/withdraw_title"/> <fragment diff --git a/wallet/src/main/res/values/strings.xml b/wallet/src/main/res/values/strings.xml index 7e8024f..421d4ab 100644 --- a/wallet/src/main/res/values/strings.xml +++ b/wallet/src/main/res/values/strings.xml @@ -114,7 +114,7 @@ GNU Taler is immune against many types of fraud, such as phishing of credit card <string name="withdraw_waiting_confirm">Waiting for confirmation</string> <string name="withdraw_manual_title">Make a manual transfer to the exchange</string> <string name="withdraw_amount">How much to withdraw?</string> - <string name="withdraw_manual_payment_options">Payment options supported by %s:</string> + <string name="withdraw_manual_payment_options">Payment options supported by %1$s:\n\n%2$s</string> <string name="withdraw_manual_check_fees">Check fees</string> <string name="withdraw_error_title">Withdrawal Error</string> <string name="withdraw_error_message">Withdrawing is currently not possible. Please try again later!</string> |