NTP-58044 | Added Analytics event for composable cta action (#16095)

This commit is contained in:
shankar yadav
2025-05-08 16:41:36 +05:30
committed by GitHub
parent 3a05f7c3b8
commit 0bf10c9b96
4 changed files with 25 additions and 8 deletions

View File

@@ -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) },
)
}
}

View File

@@ -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(

View File

@@ -1854,6 +1854,7 @@ class NaviPayAnalytics private constructor() {
streamState: PreviewView.StreamState,
naviPaySessionAttributes: Map<String, String>,
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(),
),
)
}

View File

@@ -809,6 +809,7 @@ private fun QrCamera(
streamState = it,
naviPaySessionAttributes = naviPaySessionAttributes,
qrScreenStateLoadTime = qrScreenStateLoadTime,
isNaviPayActivity = activity is NaviPayActivity,
)
if (it.name == "STREAMING") {
TemporaryStorageHelper.scanAndPayClickTime = 0L