gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[taler-taler-android] 02/03: [wallet] move withdrawal code to withdraw p


From: gnunet
Subject: [taler-taler-android] 02/03: [wallet] move withdrawal code to withdraw package
Date: Mon, 20 Jul 2020 21:38:31 +0200

This is an automated email from the git hooks/post-receive script.

torsten-grote pushed a commit to branch master
in repository taler-android.

commit de69768ac75e1608601751bd0a187e6a687dbdd2
Author: Torsten Grote <t@grobox.de>
AuthorDate: Mon Jul 20 10:55:56 2020 -0300

    [wallet] move withdrawal code to withdraw package
    
    Also show payment options from exchange's payto URIs
---
 .../java/net/taler/wallet/exchanges/ExchangeManager.kt   | 14 --------------
 .../{exchanges => withdraw}/ManualWithdrawFragment.kt    | 12 +++++++++---
 .../java/net/taler/wallet/withdraw/WithdrawManager.kt    | 16 ++++++++++++++++
 wallet/src/main/res/navigation/nav_graph.xml             |  2 +-
 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
similarity index 83%
rename from 
wallet/src/main/java/net/taler/wallet/exchanges/ManualWithdrawFragment.kt
rename to 
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>

-- 
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]