From dbc3d4e658a165f3070607cb1d74c18a232aaf93 Mon Sep 17 00:00:00 2001 From: Venkat Praneeth Reddy Date: Thu, 13 Feb 2025 15:29:14 +0530 Subject: [PATCH] NTP-24283 | Navi link Add Analytic event (#14963) --- .../analytics/NaviDeeplinkAnalytics.kt | 7 +++++++ .../ui/DeeplinkManagementActivity.kt | 1 + .../usecase/DeeplinkManagerFactory.kt | 2 +- .../usecase/NativeDeeplinkManager.kt | 13 ++++++++++--- 4 files changed, 19 insertions(+), 4 deletions(-) diff --git a/android/app/src/main/java/com/naviapp/deeplinkmanagement/analytics/NaviDeeplinkAnalytics.kt b/android/app/src/main/java/com/naviapp/deeplinkmanagement/analytics/NaviDeeplinkAnalytics.kt index ad8a65742b..15d09f9813 100644 --- a/android/app/src/main/java/com/naviapp/deeplinkmanagement/analytics/NaviDeeplinkAnalytics.kt +++ b/android/app/src/main/java/com/naviapp/deeplinkmanagement/analytics/NaviDeeplinkAnalytics.kt @@ -98,4 +98,11 @@ class NaviDeeplinkAnalytics @Inject constructor() { fun sendNaviLinkDataFailEvent() { NaviTrackEvent.trackEventOnClickStream(eventName = "NaviLink_Data_Fail_Event") } + + fun sendNativeDeepLinkEvent(deeplink: String, naviLink: String) { + NaviTrackEvent.trackEventOnClickStream( + eventName = "Native_Deep_Link_Event", + eventValues = mapOf("deeplink" to deeplink, "naviLink" to naviLink), + ) + } } diff --git a/android/app/src/main/java/com/naviapp/deeplinkmanagement/ui/DeeplinkManagementActivity.kt b/android/app/src/main/java/com/naviapp/deeplinkmanagement/ui/DeeplinkManagementActivity.kt index 5019662a5f..c27953fb3a 100644 --- a/android/app/src/main/java/com/naviapp/deeplinkmanagement/ui/DeeplinkManagementActivity.kt +++ b/android/app/src/main/java/com/naviapp/deeplinkmanagement/ui/DeeplinkManagementActivity.kt @@ -72,6 +72,7 @@ class DeeplinkManagementActivity : BaseLauncherActivity() { super.onCreate(savedInstanceState) if (BaseUtils.isUserLoggedIn().not()) { navigateToLogin() + return } if (isNetworkAvailable().not()) { navigateToHome() diff --git a/android/app/src/main/java/com/naviapp/deeplinkmanagement/usecase/DeeplinkManagerFactory.kt b/android/app/src/main/java/com/naviapp/deeplinkmanagement/usecase/DeeplinkManagerFactory.kt index de44d4700b..53976aeac9 100644 --- a/android/app/src/main/java/com/naviapp/deeplinkmanagement/usecase/DeeplinkManagerFactory.kt +++ b/android/app/src/main/java/com/naviapp/deeplinkmanagement/usecase/DeeplinkManagerFactory.kt @@ -21,7 +21,7 @@ class DeeplinkManagerFactory { DeeplinkType.APPSFLYER -> AppsFlyerDeeplinkManager() DeeplinkType.NAVI_PAY -> NaviPayDeeplinkManager() DeeplinkType.BRANCH_IO -> BranchDeeplinkManager(analyticsTracker) - DeeplinkType.NATIVE -> NativeDeeplinkManager() + DeeplinkType.NATIVE -> NativeDeeplinkManager(analyticsTracker) } } } diff --git a/android/app/src/main/java/com/naviapp/deeplinkmanagement/usecase/NativeDeeplinkManager.kt b/android/app/src/main/java/com/naviapp/deeplinkmanagement/usecase/NativeDeeplinkManager.kt index a4cd9c205d..0f61237f5c 100644 --- a/android/app/src/main/java/com/naviapp/deeplinkmanagement/usecase/NativeDeeplinkManager.kt +++ b/android/app/src/main/java/com/naviapp/deeplinkmanagement/usecase/NativeDeeplinkManager.kt @@ -18,6 +18,7 @@ import com.navi.chat.utils.HOME_SCREEN import com.navi.chat.utils.SCREEN_NAME import com.naviapp.analytics.deeplink.DeeplinkType import com.naviapp.common.navigator.NaviDeepLinkNavigator +import com.naviapp.deeplinkmanagement.analytics.NaviDeeplinkAnalytics import com.naviapp.models.DeeplinkData import com.naviapp.registration.helper.getChatParams import com.naviapp.registration.helper.isNotificationAlive @@ -26,7 +27,8 @@ import com.naviapp.utils.Constants.NAVILINK import com.naviapp.utils.isPublicPage import kotlin.reflect.KFunction1 -class NativeDeeplinkManager : IDeeplinkManager { +class NativeDeeplinkManager(private val analyticsTracker: NaviDeeplinkAnalytics) : + IDeeplinkManager { override fun handleDeeplink( intent: Intent, @@ -35,8 +37,13 @@ class NativeDeeplinkManager : IDeeplinkManager { processDeeplink: KFunction1, processNaviLink: ((String) -> Unit)?, ) { + var deeplink = intent.getStringExtra(Constants.DEEPLINK).orEmpty() var param: ArrayList? = null + analyticsTracker.sendNativeDeepLinkEvent( + deeplink = deeplink, + naviLink = intent.getStringExtra(Constants.NAVILINK_SMALL).orEmpty(), + ) when { handleNaviLink(intent, processNaviLink) -> return @@ -84,10 +91,10 @@ private fun handleNaviLink(intent: Intent, processNaviLink: ((String) -> Unit)?) } fun getNaviLinkIdentifier(intent: Intent): String? { - val navilink = intent.getStringExtra(Constants.NAVILINK_SMALL).orEmpty() + val naviLink = intent.getStringExtra(Constants.NAVILINK_SMALL).orEmpty() val identifiers = when { - navilink.isNotEmpty() -> navilink.split("/") + naviLink.isNotEmpty() -> naviLink.split("/") else -> emptyList() }