From 0dca2839f332d152c502548d904973f6e9673a25 Mon Sep 17 00:00:00 2001 From: Sanjay P Date: Wed, 4 Jun 2025 20:06:16 +0530 Subject: [PATCH] NTP-67905 | MM discoverability added missing events (#16402) --- .../moneymanager/common/analytics/MMAnalytics.kt | 4 ++-- .../helper/CheckBalanceScreenEntryPointHelper.kt | 6 ++++++ .../navi/moneymanager/common/utils/Constants.kt | 8 ++++++++ .../postonboard/dashboard/ui/DashboardScreen.kt | 16 ++++++++++++---- .../preonboard/valueprop/ui/ValuePropScreen.kt | 7 ++++++- 5 files changed, 34 insertions(+), 7 deletions(-) diff --git a/android/navi-money-manager/src/main/kotlin/com/navi/moneymanager/common/analytics/MMAnalytics.kt b/android/navi-money-manager/src/main/kotlin/com/navi/moneymanager/common/analytics/MMAnalytics.kt index 378f9166d3..b0b50daf1d 100644 --- a/android/navi-money-manager/src/main/kotlin/com/navi/moneymanager/common/analytics/MMAnalytics.kt +++ b/android/navi-money-manager/src/main/kotlin/com/navi/moneymanager/common/analytics/MMAnalytics.kt @@ -281,7 +281,7 @@ interface AddCategoryEventTracker { interface ValuePropEventTracker : FinarkeinBottomSheetEventTracker, GenericErrorBottomSheetEventTracker { - @EventName("mm_value_prop_screen_landed") fun onValuePropScreenLanded() + @EventName("mm_value_prop_screen_landed") fun onValuePropScreenLanded(navigationSource: String) @EventName("mm_value_prop_screen_exit") fun onValuePropScreenExit() @@ -312,7 +312,7 @@ interface DashboardEventTracker : ProgressBarBottomSheetEventTracker, GenericErrorBottomSheetEventTracker { - @EventName("mm_dashboard_screen_landed") fun onDashboardScreenLanded() + @EventName("mm_dashboard_screen_landed") fun onDashboardScreenLanded(navigationSource: String) @EventName("mm_dashboard_screen_exit") fun onDashboardScreenExit() diff --git a/android/navi-money-manager/src/main/kotlin/com/navi/moneymanager/common/dataprovider/data/checkbalance/helper/CheckBalanceScreenEntryPointHelper.kt b/android/navi-money-manager/src/main/kotlin/com/navi/moneymanager/common/dataprovider/data/checkbalance/helper/CheckBalanceScreenEntryPointHelper.kt index c3a2f67ec4..9490267c79 100644 --- a/android/navi-money-manager/src/main/kotlin/com/navi/moneymanager/common/dataprovider/data/checkbalance/helper/CheckBalanceScreenEntryPointHelper.kt +++ b/android/navi-money-manager/src/main/kotlin/com/navi/moneymanager/common/dataprovider/data/checkbalance/helper/CheckBalanceScreenEntryPointHelper.kt @@ -29,10 +29,12 @@ import com.navi.moneymanager.common.utils.Constants.CHECK_BALANCE_LINKED_ACCOUNT import com.navi.moneymanager.common.utils.Constants.MASKED_ACCOUNT_NUMBER import com.navi.moneymanager.common.utils.Constants.MM_DISCOVERABILITY_UPI_CHECK_BALANCE_FLOW import com.navi.moneymanager.common.utils.Constants.MM_DISCOVERABILITY_UPI_CHECK_BALANCE_FLOW_NAME +import com.navi.moneymanager.common.utils.Constants.MM_NAVIGATION_SOURCE import com.navi.moneymanager.common.utils.Constants.SELF_TRANSFER import com.navi.moneymanager.common.utils.Constants.SHOPPING import com.navi.moneymanager.common.utils.Constants.SHOPPING_CATEGORY_ICON import com.navi.moneymanager.common.utils.Constants.UTILITIES_CATEGORY_ICON +import com.navi.moneymanager.common.utils.MMNavigationSource import com.navi.moneymanager.entry.model.checkbalance.CheckBalanceCategoryItemData import com.navi.moneymanager.entry.model.checkbalance.CheckBalanceMMButtonData import com.navi.moneymanager.entry.model.checkbalance.CheckBalanceMMEntryPointState @@ -160,6 +162,10 @@ class CheckBalanceScreenEntryPointHelper @Inject constructor() { MM_DISCOVERABILITY_UPI_CHECK_BALANCE_FLOW, MM_DISCOVERABILITY_UPI_CHECK_BALANCE_FLOW_NAME, ) + putString( + MM_NAVIGATION_SOURCE, + MMNavigationSource.NAVI_UPI_CHECK_BALANCE.name, + ) }, ), ) diff --git a/android/navi-money-manager/src/main/kotlin/com/navi/moneymanager/common/utils/Constants.kt b/android/navi-money-manager/src/main/kotlin/com/navi/moneymanager/common/utils/Constants.kt index c459f0d380..86eed315e2 100644 --- a/android/navi-money-manager/src/main/kotlin/com/navi/moneymanager/common/utils/Constants.kt +++ b/android/navi-money-manager/src/main/kotlin/com/navi/moneymanager/common/utils/Constants.kt @@ -59,6 +59,7 @@ object Constants { const val DAILY_SPEND_BOTTOMSHEET = "DAILY_SPEND_BOTTOMSHEET" const val TRANSACTION_HISTORY = "TRANSACTION_HISTORY_SCREEN" const val SOURCE = "SOURCE" + const val MM_NAVIGATION_SOURCE = "MM_NAVIGATION_SOURCE" const val THANK_YOU_FOR_YOUR_FEEDBACK = "Thank you for your feedback!" // datastore constants @@ -135,3 +136,10 @@ object MonthConstants { "December", ) } + +enum class MMNavigationSource { + HOME_PAGE, + NAVI_UPI_CHECK_BALANCE, + PROFILE_SCREEN, + DEEP_LINK, +} diff --git a/android/navi-money-manager/src/main/kotlin/com/navi/moneymanager/postonboard/dashboard/ui/DashboardScreen.kt b/android/navi-money-manager/src/main/kotlin/com/navi/moneymanager/postonboard/dashboard/ui/DashboardScreen.kt index f6a3659750..80eacec982 100644 --- a/android/navi-money-manager/src/main/kotlin/com/navi/moneymanager/postonboard/dashboard/ui/DashboardScreen.kt +++ b/android/navi-money-manager/src/main/kotlin/com/navi/moneymanager/postonboard/dashboard/ui/DashboardScreen.kt @@ -54,6 +54,7 @@ import com.navi.moneymanager.common.utils.Constants.IS_CONSENT_REVOKED import com.navi.moneymanager.common.utils.Constants.IS_TOTAL_SYNC_COMPLETED import com.navi.moneymanager.common.utils.Constants.MM_DISCOVERABILITY_UPI_CHECK_BALANCE_FLOW import com.navi.moneymanager.common.utils.Constants.MM_DISCOVERABILITY_UPI_CHECK_BALANCE_FLOW_NAME +import com.navi.moneymanager.common.utils.Constants.MM_NAVIGATION_SOURCE import com.navi.moneymanager.common.utils.Constants.TRANSACTION_ID import com.navi.moneymanager.common.utils.MMScreenEventLogger import com.navi.moneymanager.common.utils.ShowCustomToast @@ -121,10 +122,20 @@ fun DashboardScreen( mutableStateOf(FloatingActionButtonState.Hidden) } + val flowName = remember { + activity.intent.extras?.getString(MM_DISCOVERABILITY_UPI_CHECK_BALANCE_FLOW) + } + + val navigationSource = remember { activity.intent.extras?.getString(MM_NAVIGATION_SOURCE) } + ScreenInit(screenName = MMScreen.DASHBOARD.screen, activity = activity) MMScreenEventLogger( - onScreenLand = { viewModel.dashboardEventTracker.onDashboardScreenLanded() }, + onScreenLand = { + viewModel.dashboardEventTracker.onDashboardScreenLanded( + navigationSource = navigationSource.orEmpty() + ) + }, onScreenExit = { viewModel.dashboardEventTracker.onDashboardScreenExit() }, ) @@ -314,9 +325,6 @@ fun DashboardScreen( BackHandler { viewModel.setEffect { DashboardScreenUiEffect.Navigation.Back } } - val flowName = remember { - activity.intent.extras?.getString(MM_DISCOVERABILITY_UPI_CHECK_BALANCE_FLOW) - } val initFinarkeinForSelectedAccount = rememberSaveable { mutableStateOf(true) } LaunchedEffect(flowName, state.screenData.bankSectionData.state) { diff --git a/android/navi-money-manager/src/main/kotlin/com/navi/moneymanager/preonboard/valueprop/ui/ValuePropScreen.kt b/android/navi-money-manager/src/main/kotlin/com/navi/moneymanager/preonboard/valueprop/ui/ValuePropScreen.kt index 46e765a53b..b311518c58 100644 --- a/android/navi-money-manager/src/main/kotlin/com/navi/moneymanager/preonboard/valueprop/ui/ValuePropScreen.kt +++ b/android/navi-money-manager/src/main/kotlin/com/navi/moneymanager/preonboard/valueprop/ui/ValuePropScreen.kt @@ -26,6 +26,7 @@ import com.navi.moneymanager.common.ui.composable.ScreenInit import com.navi.moneymanager.common.ui.composable.bottomSheet.MMBottomSheet import com.navi.moneymanager.common.utils.Constants.BANK_FIP_ID import com.navi.moneymanager.common.utils.Constants.IS_CONSENT_REVOKED +import com.navi.moneymanager.common.utils.Constants.MM_NAVIGATION_SOURCE import com.navi.moneymanager.common.utils.MMScreenEventLogger import com.navi.moneymanager.entry.ui.activity.MMActivity import com.navi.moneymanager.postonboard.dashboard.model.FinarkeinSheetStatus @@ -53,8 +54,12 @@ fun ValuePropScreen( ScreenInit(screenName = MMScreen.VALUE_PROP_SCREEN.screen, activity = activity) + val navigationSource = remember { activity.intent.extras?.getString(MM_NAVIGATION_SOURCE) } + MMScreenEventLogger( - onScreenLand = { viewModel.valuePropEventTracker.onValuePropScreenLanded() }, + onScreenLand = { + viewModel.valuePropEventTracker.onValuePropScreenLanded(navigationSource.orEmpty()) + }, onScreenExit = { viewModel.valuePropEventTracker.onValuePropScreenExit() }, )