gnunet-svn
[Top][All Lists]
Advanced

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

[taler-taler-android] 04/04: [wallet] upgrade payment flow to new API


From: gnunet
Subject: [taler-taler-android] 04/04: [wallet] upgrade payment flow to new API
Date: Thu, 30 Jul 2020 22:12:24 +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 3ceaeb30c2eb1566f5580923c4965d7c23bd7806
Author: Torsten Grote <t@grobox.de>
AuthorDate: Thu Jul 30 17:05:05 2020 -0300

    [wallet] upgrade payment flow to new API
---
 .../src/main/java/net/taler/wallet/payment/PaymentManager.kt | 11 +++++++----
 .../main/java/net/taler/wallet/payment/PaymentResponses.kt   | 12 +++++++++++-
 .../java/net/taler/wallet/payment/PromptPaymentFragment.kt   |  7 ++++---
 wallet/src/main/res/layout/payment_bottom_bar.xml            |  1 -
 4 files changed, 22 insertions(+), 9 deletions(-)

diff --git a/wallet/src/main/java/net/taler/wallet/payment/PaymentManager.kt 
b/wallet/src/main/java/net/taler/wallet/payment/PaymentManager.kt
index c6351ee..2427afb 100644
--- a/wallet/src/main/java/net/taler/wallet/payment/PaymentManager.kt
+++ b/wallet/src/main/java/net/taler/wallet/payment/PaymentManager.kt
@@ -26,6 +26,8 @@ import net.taler.common.Amount
 import net.taler.common.ContractTerms
 import net.taler.wallet.TAG
 import net.taler.wallet.backend.WalletBackendApi
+import net.taler.wallet.payment.PayStatus.AlreadyPaid
+import net.taler.wallet.payment.PayStatus.InsufficientBalance
 import net.taler.wallet.payment.PreparePayResponse.AlreadyConfirmedResponse
 import net.taler.wallet.payment.PreparePayResponse.InsufficientBalanceResponse
 import net.taler.wallet.payment.PreparePayResponse.PaymentPossibleResponse
@@ -40,7 +42,8 @@ sealed class PayStatus {
     data class Prepared(
         val contractTerms: ContractTerms,
         val proposalId: String,
-        val totalFees: Amount
+        val amountRaw: Amount,
+        val amountEffective: Amount
     ) : PayStatus()
 
     data class InsufficientBalance(val contractTerms: ContractTerms) : 
PayStatus()
@@ -74,9 +77,9 @@ class PaymentManager(
             val response: PreparePayResponse = 
mapper.readValue(result.toString())
             Log.e(TAG, "PreparePayResponse $response")
             mPayStatus.value = when (response) {
-                is PaymentPossibleResponse -> TODO()
-                is InsufficientBalanceResponse -> TODO()
-                is AlreadyConfirmedResponse -> TODO()
+                is PaymentPossibleResponse -> response.toPayStatusPrepared()
+                is InsufficientBalanceResponse -> 
InsufficientBalance(response.contractTerms)
+                is AlreadyConfirmedResponse -> AlreadyPaid
             }
         }
     }
diff --git a/wallet/src/main/java/net/taler/wallet/payment/PaymentResponses.kt 
b/wallet/src/main/java/net/taler/wallet/payment/PaymentResponses.kt
index d2f8e6c..1ff8867 100644
--- a/wallet/src/main/java/net/taler/wallet/payment/PaymentResponses.kt
+++ b/wallet/src/main/java/net/taler/wallet/payment/PaymentResponses.kt
@@ -19,6 +19,7 @@ package net.taler.wallet.payment
 import com.fasterxml.jackson.annotation.JsonTypeInfo
 import com.fasterxml.jackson.annotation.JsonTypeInfo.Id.NAME
 import com.fasterxml.jackson.annotation.JsonTypeName
+import net.taler.common.Amount
 import net.taler.common.ContractTerms
 
 @JsonTypeInfo(use = NAME, property = "status")
@@ -26,8 +27,17 @@ sealed class PreparePayResponse(open val proposalId: String) 
{
     @JsonTypeName("payment-possible")
     data class PaymentPossibleResponse(
         override val proposalId: String,
+        val amountRaw: Amount,
+        val amountEffective: Amount,
         val contractTerms: ContractTerms
-    ) : PreparePayResponse(proposalId)
+    ) : PreparePayResponse(proposalId) {
+        fun toPayStatusPrepared() = PayStatus.Prepared(
+            contractTerms = contractTerms,
+            proposalId = proposalId,
+            amountRaw = amountRaw,
+            amountEffective = amountEffective
+        )
+    }
 
     @JsonTypeName("insufficient-balance")
     data class InsufficientBalanceResponse(
diff --git 
a/wallet/src/main/java/net/taler/wallet/payment/PromptPaymentFragment.kt 
b/wallet/src/main/java/net/taler/wallet/payment/PromptPaymentFragment.kt
index 6f806b7..ce2b6f7 100644
--- a/wallet/src/main/java/net/taler/wallet/payment/PromptPaymentFragment.kt
+++ b/wallet/src/main/java/net/taler/wallet/payment/PromptPaymentFragment.kt
@@ -95,7 +95,8 @@ class PromptPaymentFragment : Fragment(), 
ProductImageClickListener {
         when (payStatus) {
             is PayStatus.Prepared -> {
                 showLoading(false)
-                showOrder(payStatus.contractTerms, payStatus.totalFees)
+                val fees = payStatus.amountEffective - payStatus.amountRaw
+                showOrder(payStatus.contractTerms, fees)
                 confirmButton.isEnabled = true
                 confirmButton.setOnClickListener {
                     model.showProgressBar.value = true
@@ -109,7 +110,7 @@ class PromptPaymentFragment : Fragment(), 
ProductImageClickListener {
             }
             is PayStatus.InsufficientBalance -> {
                 showLoading(false)
-                showOrder(payStatus.contractTerms, null)
+                showOrder(payStatus.contractTerms)
                 errorView.setText(R.string.payment_balance_insufficient)
                 errorView.fadeIn()
             }
@@ -141,7 +142,7 @@ class PromptPaymentFragment : Fragment(), 
ProductImageClickListener {
         }
     }
 
-    private fun showOrder(contractTerms: ContractTerms, totalFees: Amount?) {
+    private fun showOrder(contractTerms: ContractTerms, totalFees: Amount? = 
null) {
         orderView.text = contractTerms.summary
         adapter.setItems(contractTerms.products)
         if (contractTerms.products.size == 1) 
paymentManager.toggleDetailsShown()
diff --git a/wallet/src/main/res/layout/payment_bottom_bar.xml 
b/wallet/src/main/res/layout/payment_bottom_bar.xml
index a19ac4e..dbc60ae 100644
--- a/wallet/src/main/res/layout/payment_bottom_bar.xml
+++ b/wallet/src/main/res/layout/payment_bottom_bar.xml
@@ -32,7 +32,6 @@
             android:layout_height="wrap_content"
             android:layout_marginStart="8dp"
             android:layout_marginTop="8dp"
-            android:layout_marginBottom="27dp"
             android:text="@string/payment_label_amount_total"
             android:visibility="invisible"
             app:layout_constraintBottom_toTopOf="@+id/confirmButton"

-- 
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]