NTP-43193 | events for app shortcut (#15241)

This commit is contained in:
shreyansu raj
2025-03-06 14:55:21 +05:30
committed by GitHub
parent e22199a8d2
commit 2298fd81f7
4 changed files with 77 additions and 10 deletions

View File

@@ -1398,7 +1398,6 @@ class NaviPayAnalytics private constructor() {
fun onScanAndPayShortcutClicked(
naviPaySessionAttributes: Map<String, String>,
eventName: String,
eventValue: String,
) {
NaviTrackEvent.trackEventOnClickStream(
eventName = eventName,
@@ -1408,7 +1407,6 @@ class NaviPayAnalytics private constructor() {
naviPaySessionAttributes["naviPaySessionId"].orEmpty(),
"naviPayCustomerStatusMap" to
naviPaySessionAttributes["naviPayCustomerStatusMap"].orEmpty(),
eventName to eventValue,
),
)
}
@@ -1934,6 +1932,22 @@ class NaviPayAnalytics private constructor() {
),
)
}
fun onSendToContactShortcutClicked(
naviPaySessionAttributes: Map<String, String>,
eventName: String,
) {
NaviTrackEvent.trackEventOnClickStream(
eventName = eventName,
eventValues =
mapOf(
"naviPaySessionId" to
naviPaySessionAttributes["naviPaySessionId"].orEmpty(),
"naviPayCustomerStatusMap" to
naviPaySessionAttributes["naviPayCustomerStatusMap"].orEmpty(),
),
)
}
}
inner class NaviPayUpiNumber {
@@ -5141,6 +5155,22 @@ class NaviPayAnalytics private constructor() {
fun onOrderTagSummaryEnabled() {
NaviTrackEvent.trackEventOnClickStream("NaviTStore_OrderTagSummary_Enabled")
}
fun onOrderHistoryShortcutClicked(
naviPaySessionAttributes: Map<String, String>,
eventName: String,
) {
NaviTrackEvent.trackEventOnClickStream(
eventName = eventName,
eventValues =
mapOf(
"naviPaySessionId" to
naviPaySessionAttributes["naviPaySessionId"].orEmpty(),
"naviPayCustomerStatusMap" to
naviPaySessionAttributes["naviPayCustomerStatusMap"].orEmpty(),
),
)
}
}
inner class OrderDetails {

View File

@@ -136,9 +136,8 @@ constructor(
?.getString(NAVI_PAY_WIDGET_CLICKED_KEY)
?.let {
naviPayAnalytics.onScanAndPayShortcutClicked(
eventName = it,
naviPaySessionAttributes = getNaviPaySessionAttributes(),
eventName = NAVI_PAY_WIDGET_CLICKED_KEY,
eventValue = it,
)
}
}

View File

@@ -33,6 +33,7 @@ import com.navi.pay.common.utils.NaviPayCommonUtils.getNormalisedPhoneNumber
import com.navi.pay.common.utils.getMetricInfo
import com.navi.pay.common.viewmodel.NaviPayBaseVM
import com.navi.pay.destinations.SendMoneyScreenDestination
import com.navi.pay.entry.NaviPayActivityDataProvider
import com.navi.pay.management.common.model.view.WarningErrorInfoState
import com.navi.pay.management.common.sendmoney.model.network.TransactionInitiationType
import com.navi.pay.management.common.sendmoney.model.network.getTransactionInitiationType
@@ -47,6 +48,7 @@ import com.navi.pay.utils.DEFAULT_CONFIG
import com.navi.pay.utils.INDIA_COUNTRY_CODE_WITH_PLUS
import com.navi.pay.utils.INVALID_VPA
import com.navi.pay.utils.NAVI_PAY_SEARCH_QUERY_API_DELAY
import com.navi.pay.utils.NAVI_PAY_WIDGET_CLICKED_KEY
import com.navi.pay.utils.NOT_LINKED_TO_UPI
import com.navi.pay.utils.PHONE_NUMBER_LENGTH
import com.navi.pay.utils.isValidPhoneNumberLength
@@ -84,6 +86,7 @@ constructor(
private val frequentOrdersHelper: FrequentOrdersHelper,
private val resourceProvider: ResourceProvider,
private val validateVpaUseCase: ValidateVpaUseCase,
private val naviPayActivityDataProvider: NaviPayActivityDataProvider,
) : NaviPayBaseVM() {
private var naviPayDefaultConfig = NaviPayDefaultConfig()
@@ -245,23 +248,34 @@ constructor(
init {
viewModelScope.launch(context = Dispatchers.IO) {
initializeSynchronously()
updateNaviPaySessionId()
triggerEventForShortcutWidget()
updateNaviPayDefaultConfig()
initializeAsynchronously()
}
}
private suspend fun initializeSynchronously() {
updateNaviPayDefaultConfig()
}
private suspend fun initializeAsynchronously() {
coroutineScope {
launch { updateNaviPaySessionId() }
launch { fetchFrequentOrders() }
launch { observeAndHandleSearchResults() }
}
}
private fun triggerEventForShortcutWidget() {
viewModelScope.launch(Dispatchers.IO) {
naviPayActivityDataProvider
.getIntentData()
?.getString(NAVI_PAY_WIDGET_CLICKED_KEY)
?.let {
naviPayAnalytics.onSendToContactShortcutClicked(
eventName = it,
naviPaySessionAttributes = getNaviPaySessionAttributes(),
)
}
}
}
private suspend fun observeAndHandleSearchResults() {
combine(searchQuery, filteredContactList, filteredFrequentOrdersList) {
searchQuery,

View File

@@ -29,11 +29,13 @@ import com.navi.pay.R
import com.navi.pay.analytics.NaviPayAnalytics
import com.navi.pay.analytics.NaviPayAnalytics.Companion.NAVI_PAY_T_STORE_ORDER_LIST
import com.navi.pay.common.model.config.NaviPayDefaultConfig
import com.navi.pay.common.model.view.NaviPaySessionHelper
import com.navi.pay.common.usecase.NaviPayConfigUseCase
import com.navi.pay.common.utils.NaviPayCommonUtils.getSearchQueryListFromTagString
import com.navi.pay.common.utils.NaviPayCommonUtils.isCurrentDateGreaterOrEqualToOldDateMonthWise
import com.navi.pay.common.viewmodel.NaviPayBaseVM
import com.navi.pay.destinations.OrderDetailsScreenDestination
import com.navi.pay.entry.NaviPayActivityDataProvider
import com.navi.pay.management.common.sendmoney.model.view.PayeeTransactionHistoryEntity
import com.navi.pay.management.common.transaction.model.view.TransactionCategoryTags
import com.navi.pay.management.common.transaction.model.view.TransactionPaymentModeTags
@@ -48,6 +50,7 @@ import com.navi.pay.tstore.list.usecase.SyncOrderHistoryUseCase
import com.navi.pay.utils.DATE_TIME_FORMAT_FULL_MONTH_YEAR
import com.navi.pay.utils.DEFAULT_CONFIG
import com.navi.pay.utils.LITMUS_EXPERIMENT_NAVIPAY_ORDER_TAG_SUMMARY
import com.navi.pay.utils.NAVI_PAY_WIDGET_CLICKED_KEY
import com.navi.pay.utils.RESOURCE_DEFAULT_ID
import com.navi.pay.utils.parallelMap
import com.ramcosta.composedestinations.spec.Direction
@@ -91,6 +94,8 @@ constructor(
private val resourceProvider: ResourceProvider,
private val naviPayConfigUseCase: NaviPayConfigUseCase,
private val litmusExperimentsUseCase: LitmusExperimentsUseCase,
private val naviPayActivityDataProvider: NaviPayActivityDataProvider,
private val naviPaySessionHelper: NaviPaySessionHelper,
) : NaviPayBaseVM() {
companion object {
@@ -391,6 +396,21 @@ constructor(
.collect()
}
initOrderSummaryAmountDataListener()
triggerEventForShortcutWidget()
}
private fun triggerEventForShortcutWidget() {
viewModelScope.launch(Dispatchers.IO) {
naviPayActivityDataProvider
.getIntentData()
?.getString(NAVI_PAY_WIDGET_CLICKED_KEY)
?.let {
naviPayAnalytics.onOrderHistoryShortcutClicked(
naviPaySessionAttributes = getNaviPaySessionAttributes(),
eventName = it,
)
}
}
}
fun refreshOrderHistory() {
@@ -1224,6 +1244,10 @@ constructor(
}
}
}
fun getNaviPaySessionAttributes(): Map<String, String> {
return naviPaySessionHelper.getNaviPaySessionAttributes()
}
}
enum class FilterTabBottomSheetUIState {