From fa90a8377fef6855217d0530ccffb85f7b039893 Mon Sep 17 00:00:00 2001 From: shankar yadav Date: Thu, 24 Apr 2025 13:35:41 +0530 Subject: [PATCH] NTP-49724 | Handle QRScanner viewModel Re-Init functionality (#15898) --- .../moneytransfer/scanpay/ui/QrScannerScreen.kt | 9 +++++++++ .../scanpay/viewmodel/QrScannerViewModel.kt | 14 ++++++++++++-- 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/android/navi-pay/src/main/kotlin/com/navi/pay/management/moneytransfer/scanpay/ui/QrScannerScreen.kt b/android/navi-pay/src/main/kotlin/com/navi/pay/management/moneytransfer/scanpay/ui/QrScannerScreen.kt index e998a181b1..90e2339612 100644 --- a/android/navi-pay/src/main/kotlin/com/navi/pay/management/moneytransfer/scanpay/ui/QrScannerScreen.kt +++ b/android/navi-pay/src/main/kotlin/com/navi/pay/management/moneytransfer/scanpay/ui/QrScannerScreen.kt @@ -273,6 +273,15 @@ fun QrScannerScreenContent( if (event == Lifecycle.Event.ON_START) { qrScannerViewModel.registerLightSensorListener() } + if (event == Lifecycle.Event.ON_CREATE) { + if (!qrScannerViewModel.isInitialLaunch && activity !is NaviPayActivity) { + qrScannerViewModel.toggleIsAnyActionPerformed(false) + qrScannerViewModel.toggleTriggerAutoZoom(false) + qrScannerViewModel.init() + } else { + qrScannerViewModel.isInitialLaunch = false + } + } } lifecycleOwner.lifecycle.addObserver(observer) diff --git a/android/navi-pay/src/main/kotlin/com/navi/pay/management/moneytransfer/scanpay/viewmodel/QrScannerViewModel.kt b/android/navi-pay/src/main/kotlin/com/navi/pay/management/moneytransfer/scanpay/viewmodel/QrScannerViewModel.kt index 498ccd267d..c81af1b1b2 100644 --- a/android/navi-pay/src/main/kotlin/com/navi/pay/management/moneytransfer/scanpay/viewmodel/QrScannerViewModel.kt +++ b/android/navi-pay/src/main/kotlin/com/navi/pay/management/moneytransfer/scanpay/viewmodel/QrScannerViewModel.kt @@ -101,12 +101,18 @@ constructor( private var isAutomaticTorchEnabled = false + var isInitialLaunch = true + private val lightSensorLuxValue = MutableStateFlow(Float.MAX_VALUE) private val _genericOffersList = MutableStateFlow>(emptyList()) val genericOffersList = _genericOffersList.asStateFlow() init { + init() + } + + fun init() { getGenericOffersList() updateNaviPaySessionId() triggerEventForShortcutWidget() @@ -128,8 +134,12 @@ constructor( } } - fun toggleIsAnyActionPerformed() { - isAnyScreenActionPerformed.update { true } + fun toggleIsAnyActionPerformed(value: Boolean = true) { + isAnyScreenActionPerformed.update { value } + } + + fun toggleTriggerAutoZoom(value: Boolean) { + _triggerAutoZoom.value = value } private fun getGenericOffersList() {