diff options
Diffstat (limited to 'merchant-terminal/src/main/java/net/taler/merchantpos/payment')
3 files changed, 11 insertions, 8 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 d703a31..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 @@ -26,7 +26,7 @@ import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Job import kotlinx.coroutines.isActive import kotlinx.coroutines.launch -import net.taler.common.Duration +import net.taler.common.RelativeTime import net.taler.common.assertUiThread import net.taler.merchantlib.CheckPaymentResponse import net.taler.merchantlib.MerchantApi @@ -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( @@ -74,7 +73,7 @@ class PaymentManager( mPayment.value = Payment(order, order.summary, configManager.currency!!) val request = PostOrderRequest( contractTerms = order.toContractTerms(), - refundDelay = Duration(HOURS.toMillis(1)) + refundDelay = RelativeTime.fromMillis(HOURS.toMillis(1)) ) api.postOrder(merchantConfig, request).handle(::onNetworkError) { orderResponse -> assertUiThread() @@ -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/PaymentSuccessFragment.kt b/merchant-terminal/src/main/java/net/taler/merchantpos/payment/PaymentSuccessFragment.kt index 5b95dea..c2635c7 100644 --- a/merchant-terminal/src/main/java/net/taler/merchantpos/payment/PaymentSuccessFragment.kt +++ b/merchant-terminal/src/main/java/net/taler/merchantpos/payment/PaymentSuccessFragment.kt @@ -31,11 +31,12 @@ class PaymentSuccessFragment : Fragment() { override fun onCreateView( inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle? - ): View? { + ): View { ui = FragmentPaymentSuccessBinding.inflate(inflater, container, false) return ui.root } + @Deprecated("Deprecated in Java") override fun onActivityCreated(savedInstanceState: Bundle?) { super.onActivityCreated(savedInstanceState) ui.paymentButton.setOnClickListener { 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() } |