[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[taler-taler-android] 01/02: [pos] Keep checking payment status as long
From: |
gnunet |
Subject: |
[taler-taler-android] 01/02: [pos] Keep checking payment status as long as payment fragment is shown |
Date: |
Tue, 11 Apr 2023 19:35:43 +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 7e8d39aa6f7a97ae14cb90db12f3ab83c9c5a343
Author: Torsten Grote <t@grobox.de>
AuthorDate: Tue Apr 11 14:34:32 2023 -0300
[pos] Keep checking payment status as long as payment fragment is shown
don't cancel on network errors and don't time-out. We keep checking as long
as the users cancels or navigates back from the screen.
---
.../src/main/java/net/taler/merchantpos/payment/PaymentManager.kt | 8 +++++---
.../java/net/taler/merchantpos/payment/ProcessPaymentFragment.kt | 4 ++--
2 files changed, 7 insertions(+), 5 deletions(-)
diff --git
a/merchant-terminal/src/main/java/net/taler/merchantpos/payment/PaymentManager.kt
b/merchant-terminal/src/main/java/net/taler/merchantpos/payment/PaymentManager.kt
index 02f66fa..efcb158 100644
---
a/merchant-terminal/src/main/java/net/taler/merchantpos/payment/PaymentManager.kt
+++
b/merchant-terminal/src/main/java/net/taler/merchantpos/payment/PaymentManager.kt
@@ -36,10 +36,9 @@ import net.taler.merchantpos.R
import net.taler.merchantpos.config.ConfigManager
import net.taler.merchantpos.order.Order
import java.util.concurrent.TimeUnit.HOURS
-import java.util.concurrent.TimeUnit.MINUTES
import java.util.concurrent.TimeUnit.SECONDS
-private val TIMEOUT = MINUTES.toMillis(2)
+private const val TIMEOUT = Long.MAX_VALUE
private val CHECK_INTERVAL = SECONDS.toMillis(1)
class PaymentManager(
@@ -85,7 +84,10 @@ class PaymentManager(
private fun checkPayment(orderId: String) = scope.launch {
val merchantConfig = configManager.merchantConfig!!
- api.checkOrder(merchantConfig, orderId).handle(::onNetworkError) {
response ->
+ api.checkOrder(merchantConfig, orderId).handle({ error ->
+ // don't call onNetworkError() to not cancel payment, just keep
trying
+ Log.d(TAG, "Network error: $error")
+ }) { response ->
assertUiThread()
if (!isActive) return@handle // don't continue if job was cancelled
val currentValue = requireNotNull(mPayment.value)
diff --git
a/merchant-terminal/src/main/java/net/taler/merchantpos/payment/ProcessPaymentFragment.kt
b/merchant-terminal/src/main/java/net/taler/merchantpos/payment/ProcessPaymentFragment.kt
index 201c9cf..443ca91 100644
---
a/merchant-terminal/src/main/java/net/taler/merchantpos/payment/ProcessPaymentFragment.kt
+++
b/merchant-terminal/src/main/java/net/taler/merchantpos/payment/ProcessPaymentFragment.kt
@@ -55,9 +55,9 @@ class ProcessPaymentFragment : Fragment() {
val introRes =
if (hasNfc(requireContext())) R.string.payment_intro_nfc else
R.string.payment_intro
ui.payIntroView.setText(introRes)
- paymentManager.payment.observe(viewLifecycleOwner, { payment ->
+ paymentManager.payment.observe(viewLifecycleOwner) { payment ->
onPaymentStateChanged(payment)
- })
+ }
ui.cancelPaymentButton.setOnClickListener {
onPaymentCancel()
}
--
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.