From 82a1958351fd0912ce72f8966ea242ffb3033707 Mon Sep 17 00:00:00 2001 From: Shiv Natani Date: Wed, 5 Feb 2025 15:24:21 +0530 Subject: [PATCH] NTP-33302 | Shiv natani | txn completion time overflow fix (#14869) --- .../nativepayment/screens/TransactionPollingScreen.kt | 8 ++++---- .../viewmodel/TransactionPollingViewModel.kt | 7 ++++++- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/android/navi-payment/src/main/java/com/navi/payment/nativepayment/screens/TransactionPollingScreen.kt b/android/navi-payment/src/main/java/com/navi/payment/nativepayment/screens/TransactionPollingScreen.kt index 59269e3182..b1a9cd83ac 100644 --- a/android/navi-payment/src/main/java/com/navi/payment/nativepayment/screens/TransactionPollingScreen.kt +++ b/android/navi-payment/src/main/java/com/navi/payment/nativepayment/screens/TransactionPollingScreen.kt @@ -207,8 +207,8 @@ fun TransactionPollingScreen( PAYMENT_MODE to pollingState.data?.paymentMode.orEmpty(), SCREEN_NAME to sourceDestination, TRANSACTION_COMPLETION_TIME to - (System.currentTimeMillis() - - transactionPollingViewModel.pollingStartTime) + transactionPollingViewModel + .getTransactionCompletionTime() .toString(), ), ) @@ -234,8 +234,8 @@ fun TransactionPollingScreen( STATUS to pollingState.status, PAYMENT_MODE to pollingState.paymentMode.orEmpty(), TRANSACTION_COMPLETION_TIME to - (System.currentTimeMillis() - - transactionPollingViewModel.pollingStartTime) + transactionPollingViewModel + .getTransactionCompletionTime() .toString(), ), ) diff --git a/android/navi-payment/src/main/java/com/navi/payment/nativepayment/viewmodel/TransactionPollingViewModel.kt b/android/navi-payment/src/main/java/com/navi/payment/nativepayment/viewmodel/TransactionPollingViewModel.kt index 6123438e98..18d6bc4829 100644 --- a/android/navi-payment/src/main/java/com/navi/payment/nativepayment/viewmodel/TransactionPollingViewModel.kt +++ b/android/navi-payment/src/main/java/com/navi/payment/nativepayment/viewmodel/TransactionPollingViewModel.kt @@ -62,6 +62,7 @@ import com.navi.payment.utils.PaymentSource import com.navi.payment.utils.getPMSMetricInfo import com.navi.uitron.utils.orVal import dagger.hilt.android.lifecycle.HiltViewModel +import java.lang.Long.max import javax.inject.Inject import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.delay @@ -121,7 +122,7 @@ constructor( MutableStateFlow(TransactionPollingApiStateV2.Init) val paymentTransactionStatus = _paymentTransactionStatus.asStateFlow() - val pollingStartTime = System.currentTimeMillis() + private val pollingStartTime = System.currentTimeMillis() init { if (naviUpiTransactionInfo.isNull()) pollTransactionStatus() else executeSendMoney() @@ -443,4 +444,8 @@ constructor( status == PENDING && nextStatusCheckRequired.orTrue() && pollingCount <= pollingConfiguration?.numOfRetries.orVal(10) + + fun getTransactionCompletionTime(): Long { + return max(0, System.currentTimeMillis() - pollingStartTime) + } }