diff --git a/android/app/src/main/java/com/naviapp/home/compose/home/utils/CtaActionHandler.kt b/android/app/src/main/java/com/naviapp/home/compose/home/utils/CtaActionHandler.kt index db2a769d06..8e88fe88fe 100644 --- a/android/app/src/main/java/com/naviapp/home/compose/home/utils/CtaActionHandler.kt +++ b/android/app/src/main/java/com/naviapp/home/compose/home/utils/CtaActionHandler.kt @@ -8,8 +8,6 @@ package com.naviapp.home.compose.home.utils import com.navi.common.utils.TemporaryStorageHelper -import com.navi.pay.common.model.view.NaviPayScreenType -import com.navi.pay.utils.NAVI_PAY_CTA_URL_PREFIX import com.naviapp.home.compose.activity.HomePageActivity import com.naviapp.home.compose.listener.HomeScreenCallbackListener import com.naviapp.home.compose.model.CtaActionEvent @@ -47,12 +45,11 @@ fun handleCtaAction( } is CtaActionEvent.ShowComposable -> { - if ( - event.ctaData?.url == - "$NAVI_PAY_CTA_URL_PREFIX${NaviPayScreenType.NAVI_PAY_QR_SCANNER_SCREEN.name}" - ) { - TemporaryStorageHelper.scanAndPayClickTime = System.currentTimeMillis() - sharedVM.updateQRScreenVisibility(true) + event.ctaData?.let { + homeVM.handleComposableCtaData( + naviClickAction = it, + onShowComposableClicked = { sharedVM.updateQRScreenVisibility(true) }, + ) } } diff --git a/android/app/src/main/java/com/naviapp/home/viewmodel/HomeViewModel.kt b/android/app/src/main/java/com/naviapp/home/viewmodel/HomeViewModel.kt index b28c5dc502..28844d58cb 100644 --- a/android/app/src/main/java/com/naviapp/home/viewmodel/HomeViewModel.kt +++ b/android/app/src/main/java/com/naviapp/home/viewmodel/HomeViewModel.kt @@ -30,6 +30,8 @@ import com.navi.common.utils.Constants.SCREEN_HASH import com.navi.common.utils.Constants.UPI_NUX_SCREEN import com.navi.common.utils.TemporaryStorageHelper import com.navi.naviwidgets.utils.CURRENT_VERSION_IN_STORE +import com.navi.pay.common.model.view.NaviPayScreenType +import com.navi.pay.utils.NAVI_PAY_CTA_URL_PREFIX import com.navi.uitron.model.data.UiTronAction import com.navi.uitron.model.data.UiTronActionData import com.naviapp.BuildConfig @@ -260,6 +262,21 @@ constructor( } } + fun handleComposableCtaData(naviClickAction: CtaData, onShowComposableClicked: () -> Unit) { + naviClickAction.analyticsEventProperties?.let { eventProperties -> + eventProperties.name?.let { eventName -> + NaviTrackEvent.trackEventOnClickStream(eventName, eventProperties.properties) + } + } + if ( + naviClickAction.url == + "$NAVI_PAY_CTA_URL_PREFIX${NaviPayScreenType.NAVI_PAY_QR_SCANNER_SCREEN.name}" + ) { + TemporaryStorageHelper.scanAndPayClickTime = System.currentTimeMillis() + onShowComposableClicked() + } + } + fun fetchNuxScreenDataForEligibleUsers(naeScreenName: String, navigateToNuxScreen: () -> Unit) { viewModelScope.safeLaunch((Dispatchers.IO)) { nuxHandler.fetchNuxScreenDataForEligibleUsers( diff --git a/android/navi-pay/src/main/kotlin/com/navi/pay/analytics/NaviPayAnalytics.kt b/android/navi-pay/src/main/kotlin/com/navi/pay/analytics/NaviPayAnalytics.kt index ef9d3a817c..3663ee84f0 100644 --- a/android/navi-pay/src/main/kotlin/com/navi/pay/analytics/NaviPayAnalytics.kt +++ b/android/navi-pay/src/main/kotlin/com/navi/pay/analytics/NaviPayAnalytics.kt @@ -1854,6 +1854,7 @@ class NaviPayAnalytics private constructor() { streamState: PreviewView.StreamState, naviPaySessionAttributes: Map, qrScreenStateLoadTime: Long, + isNaviPayActivity: Boolean, ) { NaviTrackEvent.trackEventOnClickStream( eventName = "NaviPay_QrScanner_CameraStateChange", @@ -1865,6 +1866,7 @@ class NaviPayAnalytics private constructor() { "naviPayCustomerStatusMap" to naviPaySessionAttributes["naviPayCustomerStatusMap"].orEmpty(), "newQrScreenStateLoadTime" to qrScreenStateLoadTime.toString(), + "isNaviPayActivity" to isNaviPayActivity.toString(), ), ) } 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 0554583741..a94c370d83 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 @@ -809,6 +809,7 @@ private fun QrCamera( streamState = it, naviPaySessionAttributes = naviPaySessionAttributes, qrScreenStateLoadTime = qrScreenStateLoadTime, + isNaviPayActivity = activity is NaviPayActivity, ) if (it.name == "STREAMING") { TemporaryStorageHelper.scanAndPayClickTime = 0L