NTP-8966 | Anmol Agrawal | PMS OE changes (#13677)
This commit is contained in:
@@ -56,7 +56,7 @@ sealed class MetricInfo<T>(
|
||||
override val isNae: (RepoResult<T>) -> Boolean = {
|
||||
it.error != null || !it.errors.isNullOrEmpty()
|
||||
},
|
||||
) : MetricInfo<RepoResult<T>>(screen = screen, vertical = ModuleNameV2.PMS.name, isNae = isNae)
|
||||
) : MetricInfo<RepoResult<T>>(screen = screen, vertical = ModuleNameV2.PG.name, isNae = isNae)
|
||||
|
||||
data class InsuranceMetricInfo<T>(
|
||||
override val screen: String,
|
||||
|
||||
@@ -42,7 +42,7 @@ fun getEventNameWithVerticalPrefix(eventName: String, vertical: String): String
|
||||
return when (vertical) {
|
||||
ModuleNameV2.NAVIPAY.name -> "NaviPay_$eventName"
|
||||
ModuleNameV2.BBPS.name -> "NaviBBPS_$eventName"
|
||||
ModuleNameV2.PG.name -> "navi_pmt_$eventName"
|
||||
ModuleNameV2.PG.name -> "NaviPMT_$eventName"
|
||||
ModuleNameV2.AMC.name -> "amc_$eventName"
|
||||
ModuleNameV2.COIN.name -> "navi_coin_$eventName"
|
||||
ModuleNameV2.Insurance.name -> "gi_$eventName"
|
||||
|
||||
@@ -26,7 +26,6 @@ enum class ModuleNameV2 {
|
||||
App, // For App module
|
||||
BBPS,
|
||||
GOLD,
|
||||
PMS,
|
||||
ALCHEMIST,
|
||||
CRM
|
||||
}
|
||||
|
||||
@@ -23,7 +23,7 @@ class NaviPaymentAnalytics private constructor() {
|
||||
|
||||
fun onSubmitFeedback(selectedFeedbackOptions: Set<String>, feedBackComment: String) {
|
||||
NaviTrackEvent.trackEventOnClickStream(
|
||||
eventName = "${NAVI_PMT}_feedback_submit",
|
||||
eventName = "${NAVI_PMT}_FeedbackSubmit",
|
||||
eventValues =
|
||||
mapOf(
|
||||
"selected_feedback_options" to selectedFeedbackOptions.toString(),
|
||||
@@ -48,14 +48,14 @@ class NaviPaymentAnalytics private constructor() {
|
||||
putAll(baseAttributes)
|
||||
}
|
||||
NaviTrackEvent.trackEventOnClickStream(
|
||||
eventName = "${NAVI_PMT}_${screenName}_validate_vpa_result",
|
||||
eventName = "${NAVI_PMT}_${screenName}_ValidateVpaResult",
|
||||
eventValues = eventAttributes
|
||||
)
|
||||
}
|
||||
|
||||
fun onBackPress(screenName: String) {
|
||||
NaviTrackEvent.trackEventOnClickStream(
|
||||
eventName = "${NAVI_PMT}_${screenName}_back_pressed",
|
||||
eventName = "${NAVI_PMT}_${screenName}_BackPressed",
|
||||
)
|
||||
}
|
||||
|
||||
@@ -69,7 +69,7 @@ class NaviPaymentAnalytics private constructor() {
|
||||
put("vpa", vpa)
|
||||
}
|
||||
NaviTrackEvent.trackEventOnClickStream(
|
||||
eventName = "${NAVI_PMT}_${screenName}_vpa_handle_suggestion_clicked",
|
||||
eventName = "${NAVI_PMT}_${screenName}_VpaHandleSuggestionClicked",
|
||||
eventValues = eventAttributes
|
||||
)
|
||||
}
|
||||
@@ -85,7 +85,7 @@ class NaviPaymentAnalytics private constructor() {
|
||||
)
|
||||
NaviTrackEvent.trackEventOnClickStream(
|
||||
eventName =
|
||||
"${NAVI_PMT}_${NaviPaymentAnalyticScreenName.FULL_PAYMENT_SCREEN.screenName}_landed",
|
||||
"${NAVI_PMT}_${NaviPaymentAnalyticScreenName.FULL_PAYMENT_SCREEN.screenName}_Landed",
|
||||
eventValues = updatedAttributes
|
||||
)
|
||||
}
|
||||
@@ -106,7 +106,7 @@ class NaviPaymentAnalytics private constructor() {
|
||||
}
|
||||
NaviTrackEvent.trackEventOnClickStream(
|
||||
eventName =
|
||||
"${NAVI_PMT}_${NaviPaymentAnalyticScreenName.FULL_PAYMENT_SCREEN.screenName}_naviupi_info_message_shown",
|
||||
"${NAVI_PMT}_${NaviPaymentAnalyticScreenName.FULL_PAYMENT_SCREEN.screenName}_NaviUpiInfoMessageShown",
|
||||
eventValues = eventAttributes
|
||||
)
|
||||
}
|
||||
@@ -123,7 +123,7 @@ class NaviPaymentAnalytics private constructor() {
|
||||
}
|
||||
NaviTrackEvent.trackEventOnClickStream(
|
||||
eventName =
|
||||
"${NAVI_PMT}_${NaviPaymentAnalyticScreenName.FULL_PAYMENT_SCREEN.screenName}_naviupi_bank_account_clicked",
|
||||
"${NAVI_PMT}_${NaviPaymentAnalyticScreenName.FULL_PAYMENT_SCREEN.screenName}_NaviUpiBankAccountClicked",
|
||||
eventValues = eventAttributes
|
||||
)
|
||||
}
|
||||
@@ -131,7 +131,7 @@ class NaviPaymentAnalytics private constructor() {
|
||||
fun onNaviUpiBankAddAccountClicked(baseAttributes: Map<String, String>) {
|
||||
NaviTrackEvent.trackEventOnClickStream(
|
||||
eventName =
|
||||
"${NAVI_PMT}_${NaviPaymentAnalyticScreenName.FULL_PAYMENT_SCREEN.screenName}_naviupi_add_account_clicked",
|
||||
"${NAVI_PMT}_${NaviPaymentAnalyticScreenName.FULL_PAYMENT_SCREEN.screenName}_NaviUpiAddAccountClicked",
|
||||
eventValues = baseAttributes
|
||||
)
|
||||
}
|
||||
@@ -143,7 +143,7 @@ class NaviPaymentAnalytics private constructor() {
|
||||
}
|
||||
NaviTrackEvent.trackEventOnClickStream(
|
||||
eventName =
|
||||
"${NAVI_PMT}_${NaviPaymentAnalyticScreenName.FULL_PAYMENT_SCREEN.screenName}_redirection_to_naviupi",
|
||||
"${NAVI_PMT}_${NaviPaymentAnalyticScreenName.FULL_PAYMENT_SCREEN.screenName}_RedirectionToNaviUpi",
|
||||
eventValues = eventAttributes
|
||||
)
|
||||
}
|
||||
@@ -155,7 +155,7 @@ class NaviPaymentAnalytics private constructor() {
|
||||
}
|
||||
NaviTrackEvent.trackEventOnClickStream(
|
||||
eventName =
|
||||
"${NAVI_PMT}_${NaviPaymentAnalyticScreenName.FULL_PAYMENT_SCREEN.screenName}_redirection_from_naviupi",
|
||||
"${NAVI_PMT}_${NaviPaymentAnalyticScreenName.FULL_PAYMENT_SCREEN.screenName}_RedirectionFromNaviUpi",
|
||||
eventValues = eventAttributes
|
||||
)
|
||||
}
|
||||
@@ -170,7 +170,7 @@ class NaviPaymentAnalytics private constructor() {
|
||||
}
|
||||
NaviTrackEvent.trackEventOnClickStream(
|
||||
eventName =
|
||||
"${NAVI_PMT}_${NaviPaymentAnalyticScreenName.FULL_PAYMENT_SCREEN.screenName}_upi_intent_app_selected",
|
||||
"${NAVI_PMT}_${NaviPaymentAnalyticScreenName.FULL_PAYMENT_SCREEN.screenName}_UpiIntentAppSelected",
|
||||
eventValues = eventAttributes
|
||||
)
|
||||
}
|
||||
@@ -178,7 +178,7 @@ class NaviPaymentAnalytics private constructor() {
|
||||
fun onUpiCollectSelected(baseAttributes: Map<String, String>) {
|
||||
NaviTrackEvent.trackEventOnClickStream(
|
||||
eventName =
|
||||
"${NAVI_PMT}_${NaviPaymentAnalyticScreenName.FULL_PAYMENT_SCREEN.screenName}_upi_collect_selected",
|
||||
"${NAVI_PMT}_${NaviPaymentAnalyticScreenName.FULL_PAYMENT_SCREEN.screenName}_UpiCollectSelected",
|
||||
eventValues = baseAttributes
|
||||
)
|
||||
}
|
||||
@@ -190,7 +190,7 @@ class NaviPaymentAnalytics private constructor() {
|
||||
}
|
||||
NaviTrackEvent.trackEventOnClickStream(
|
||||
eventName =
|
||||
"${NAVI_PMT}_${NaviPaymentAnalyticScreenName.FULL_PAYMENT_SCREEN.screenName}_upi_app_launched",
|
||||
"${NAVI_PMT}_${NaviPaymentAnalyticScreenName.FULL_PAYMENT_SCREEN.screenName}_UpiAppLaunched",
|
||||
eventValues = eventAttributes
|
||||
)
|
||||
}
|
||||
@@ -202,7 +202,7 @@ class NaviPaymentAnalytics private constructor() {
|
||||
}
|
||||
NaviTrackEvent.trackEventOnClickStream(
|
||||
eventName =
|
||||
"${NAVI_PMT}_${NaviPaymentAnalyticScreenName.FULL_PAYMENT_SCREEN.screenName}_upi_app_result_received",
|
||||
"${NAVI_PMT}_${NaviPaymentAnalyticScreenName.FULL_PAYMENT_SCREEN.screenName}_UpiAppResultReceived",
|
||||
eventValues = eventAttributes
|
||||
)
|
||||
}
|
||||
@@ -210,7 +210,7 @@ class NaviPaymentAnalytics private constructor() {
|
||||
fun onUpiIntentWidgetClicked(baseAttributes: Map<String, String>) {
|
||||
NaviTrackEvent.trackEventOnClickStream(
|
||||
eventName =
|
||||
"${NAVI_PMT}_${NaviPaymentAnalyticScreenName.FULL_PAYMENT_SCREEN.screenName}_upi_intent_card_clicked",
|
||||
"${NAVI_PMT}_${NaviPaymentAnalyticScreenName.FULL_PAYMENT_SCREEN.screenName}_UpiIntentWidgetClicked",
|
||||
eventValues = baseAttributes
|
||||
)
|
||||
}
|
||||
@@ -222,7 +222,7 @@ class NaviPaymentAnalytics private constructor() {
|
||||
}
|
||||
NaviTrackEvent.trackEventOnClickStream(
|
||||
eventName =
|
||||
"${NAVI_PMT}_${NaviPaymentAnalyticScreenName.FULL_PAYMENT_SCREEN.screenName}_card_widget_clicked",
|
||||
"${NAVI_PMT}_${NaviPaymentAnalyticScreenName.FULL_PAYMENT_SCREEN.screenName}_CardWidgetClicked",
|
||||
eventValues = eventAttributes
|
||||
)
|
||||
}
|
||||
@@ -230,7 +230,7 @@ class NaviPaymentAnalytics private constructor() {
|
||||
fun onNetBankingWidgetClicked(baseAttributes: Map<String, String>) {
|
||||
NaviTrackEvent.trackEventOnClickStream(
|
||||
eventName =
|
||||
"${NAVI_PMT}_${NaviPaymentAnalyticScreenName.FULL_PAYMENT_SCREEN.screenName}_net_banking_widget_clicked",
|
||||
"${NAVI_PMT}_${NaviPaymentAnalyticScreenName.FULL_PAYMENT_SCREEN.screenName}_NetBankingWidgetClicked",
|
||||
eventValues = baseAttributes
|
||||
)
|
||||
}
|
||||
@@ -253,7 +253,7 @@ class NaviPaymentAnalytics private constructor() {
|
||||
}
|
||||
NaviTrackEvent.trackEventOnClickStream(
|
||||
eventName =
|
||||
"${NAVI_PMT}_${NaviPaymentAnalyticScreenName.FULL_PAYMENT_SCREEN.screenName}_pay_now_clicked",
|
||||
"${NAVI_PMT}_${NaviPaymentAnalyticScreenName.FULL_PAYMENT_SCREEN.screenName}_PayNowClicked",
|
||||
eventValues = eventAttributes
|
||||
)
|
||||
}
|
||||
@@ -270,7 +270,7 @@ class NaviPaymentAnalytics private constructor() {
|
||||
}
|
||||
NaviTrackEvent.trackEventOnClickStream(
|
||||
eventName =
|
||||
"${NAVI_PMT}_${NaviPaymentAnalyticScreenName.FULL_PAYMENT_SCREEN.screenName}_discount_applied",
|
||||
"${NAVI_PMT}_${NaviPaymentAnalyticScreenName.FULL_PAYMENT_SCREEN.screenName}_DiscountApplied",
|
||||
eventValues = eventAttributes
|
||||
)
|
||||
}
|
||||
@@ -278,7 +278,7 @@ class NaviPaymentAnalytics private constructor() {
|
||||
fun onFomoBottomSheetShown(baseAttributes: Map<String, String>) {
|
||||
NaviTrackEvent.trackEventOnClickStream(
|
||||
eventName =
|
||||
"${NAVI_PMT}_${NaviPaymentAnalyticScreenName.FULL_PAYMENT_SCREEN.screenName}_fomo_bottom_sheet_shown",
|
||||
"${NAVI_PMT}_${NaviPaymentAnalyticScreenName.FULL_PAYMENT_SCREEN.screenName}_FomoBottomSheetShown",
|
||||
eventValues = baseAttributes
|
||||
)
|
||||
}
|
||||
@@ -286,7 +286,7 @@ class NaviPaymentAnalytics private constructor() {
|
||||
fun onFomoBottomSheetDismissed(baseAttributes: Map<String, String>) {
|
||||
NaviTrackEvent.trackEventOnClickStream(
|
||||
eventName =
|
||||
"${NAVI_PMT}_${NaviPaymentAnalyticScreenName.FULL_PAYMENT_SCREEN.screenName}_fomo_bottom_sheet_dismissed",
|
||||
"${NAVI_PMT}_${NaviPaymentAnalyticScreenName.FULL_PAYMENT_SCREEN.screenName}_FomoBottomSheetDismissed",
|
||||
eventValues = baseAttributes
|
||||
)
|
||||
}
|
||||
@@ -298,7 +298,7 @@ class NaviPaymentAnalytics private constructor() {
|
||||
}
|
||||
NaviTrackEvent.trackEventOnClickStream(
|
||||
eventName =
|
||||
"${NAVI_PMT}_${NaviPaymentAnalyticScreenName.FULL_PAYMENT_SCREEN.screenName}_fomo_bottom_sheet_cta_clicked",
|
||||
"${NAVI_PMT}_${NaviPaymentAnalyticScreenName.FULL_PAYMENT_SCREEN.screenName}_FomoBottomSheetCtaClicked",
|
||||
eventValues = eventAttributes
|
||||
)
|
||||
}
|
||||
@@ -314,7 +314,7 @@ class NaviPaymentAnalytics private constructor() {
|
||||
)
|
||||
NaviTrackEvent.trackEventOnClickStream(
|
||||
eventName =
|
||||
"${NAVI_PMT}_${NaviPaymentAnalyticScreenName.UPI_INTENT_SCREEN.screenName}_landed",
|
||||
"${NAVI_PMT}_${NaviPaymentAnalyticScreenName.UPI_INTENT_SCREEN.screenName}_Landed",
|
||||
eventValues = updatedAttributes
|
||||
)
|
||||
}
|
||||
@@ -326,7 +326,7 @@ class NaviPaymentAnalytics private constructor() {
|
||||
}
|
||||
NaviTrackEvent.trackEventOnClickStream(
|
||||
eventName =
|
||||
"${NAVI_PMT}_${NaviPaymentAnalyticScreenName.UPI_INTENT_SCREEN.screenName}_upi_app_selected",
|
||||
"${NAVI_PMT}_${NaviPaymentAnalyticScreenName.UPI_INTENT_SCREEN.screenName}_UpiAppSelected",
|
||||
eventValues = eventAttributes
|
||||
)
|
||||
}
|
||||
@@ -334,7 +334,7 @@ class NaviPaymentAnalytics private constructor() {
|
||||
fun onUpiCollectSelected(baseAttributes: Map<String, String>) {
|
||||
NaviTrackEvent.trackEventOnClickStream(
|
||||
eventName =
|
||||
"${NAVI_PMT}_${NaviPaymentAnalyticScreenName.UPI_INTENT_SCREEN.screenName}_collect_selected",
|
||||
"${NAVI_PMT}_${NaviPaymentAnalyticScreenName.UPI_INTENT_SCREEN.screenName}_CollectSelected",
|
||||
eventValues = baseAttributes
|
||||
)
|
||||
}
|
||||
@@ -346,7 +346,7 @@ class NaviPaymentAnalytics private constructor() {
|
||||
}
|
||||
NaviTrackEvent.trackEventOnClickStream(
|
||||
eventName =
|
||||
"${NAVI_PMT}_${NaviPaymentAnalyticScreenName.UPI_INTENT_SCREEN.screenName}_upi_app_launched",
|
||||
"${NAVI_PMT}_${NaviPaymentAnalyticScreenName.UPI_INTENT_SCREEN.screenName}_UpiAppLaunched",
|
||||
eventValues = eventAttributes
|
||||
)
|
||||
}
|
||||
@@ -358,7 +358,7 @@ class NaviPaymentAnalytics private constructor() {
|
||||
}
|
||||
NaviTrackEvent.trackEventOnClickStream(
|
||||
eventName =
|
||||
"${NAVI_PMT}_${NaviPaymentAnalyticScreenName.UPI_INTENT_SCREEN.screenName}_upi_app_result_received",
|
||||
"${NAVI_PMT}_${NaviPaymentAnalyticScreenName.UPI_INTENT_SCREEN.screenName}_UpiAppResultReceived",
|
||||
eventValues = eventAttributes
|
||||
)
|
||||
}
|
||||
@@ -377,7 +377,7 @@ class NaviPaymentAnalytics private constructor() {
|
||||
}
|
||||
NaviTrackEvent.trackEventOnClickStream(
|
||||
eventName =
|
||||
"${NAVI_PMT}_${NaviPaymentAnalyticScreenName.UPI_INTENT_SCREEN.screenName}_pay_now_clicked",
|
||||
"${NAVI_PMT}_${NaviPaymentAnalyticScreenName.UPI_INTENT_SCREEN.screenName}_PayNowClicked",
|
||||
eventValues = eventAttributes
|
||||
)
|
||||
}
|
||||
@@ -388,7 +388,7 @@ class NaviPaymentAnalytics private constructor() {
|
||||
fun onBackPressed(baseAttributes: Map<String, String>) {
|
||||
NaviTrackEvent.trackEventOnClickStream(
|
||||
eventName =
|
||||
"${NAVI_PMT}_${NaviPaymentAnalyticScreenName.NET_BANKING_SCREEN.screenName}_back_pressed",
|
||||
"${NAVI_PMT}_${NaviPaymentAnalyticScreenName.NET_BANKING_SCREEN.screenName}_BackPressed",
|
||||
eventValues = baseAttributes
|
||||
)
|
||||
}
|
||||
@@ -401,7 +401,7 @@ class NaviPaymentAnalytics private constructor() {
|
||||
)
|
||||
NaviTrackEvent.trackEventOnClickStream(
|
||||
eventName =
|
||||
"${NAVI_PMT}_${NaviPaymentAnalyticScreenName.NET_BANKING_SCREEN.screenName}_landed",
|
||||
"${NAVI_PMT}_${NaviPaymentAnalyticScreenName.NET_BANKING_SCREEN.screenName}_Landed",
|
||||
eventValues = updatedAttributes
|
||||
)
|
||||
}
|
||||
@@ -420,7 +420,7 @@ class NaviPaymentAnalytics private constructor() {
|
||||
}
|
||||
NaviTrackEvent.trackEventOnClickStream(
|
||||
eventName =
|
||||
"${NAVI_PMT}_${NaviPaymentAnalyticScreenName.NET_BANKING_SCREEN.screenName}_bank_selected",
|
||||
"${NAVI_PMT}_${NaviPaymentAnalyticScreenName.NET_BANKING_SCREEN.screenName}_BankSelected",
|
||||
eventValues = eventAttributes
|
||||
)
|
||||
}
|
||||
@@ -432,7 +432,7 @@ class NaviPaymentAnalytics private constructor() {
|
||||
}
|
||||
NaviTrackEvent.trackEventOnClickStream(
|
||||
eventName =
|
||||
"${NAVI_PMT}_${NaviPaymentAnalyticScreenName.NET_BANKING_SCREEN.screenName}_search_bank_query",
|
||||
"${NAVI_PMT}_${NaviPaymentAnalyticScreenName.NET_BANKING_SCREEN.screenName}_SearchBankQuery",
|
||||
eventValues = eventAttributes
|
||||
)
|
||||
}
|
||||
@@ -444,7 +444,7 @@ class NaviPaymentAnalytics private constructor() {
|
||||
}
|
||||
NaviTrackEvent.trackEventOnClickStream(
|
||||
eventName =
|
||||
"${NAVI_PMT}_${NaviPaymentAnalyticScreenName.NET_BANKING_SCREEN.screenName}_no_bank_found",
|
||||
"${NAVI_PMT}_${NaviPaymentAnalyticScreenName.NET_BANKING_SCREEN.screenName}_NoBankFound",
|
||||
eventValues = eventAttributes
|
||||
)
|
||||
}
|
||||
@@ -455,14 +455,14 @@ class NaviPaymentAnalytics private constructor() {
|
||||
fun onJuspayPaymentStarted() {
|
||||
NaviTrackEvent.trackEventOnClickStream(
|
||||
eventName =
|
||||
"${NAVI_PMT}_${NaviPaymentAnalyticScreenName.CARD_SCREEN.screenName}_juspay_payment_initiated"
|
||||
"${NAVI_PMT}_${NaviPaymentAnalyticScreenName.CARD_SCREEN.screenName}_JuspayPaymentInitiated"
|
||||
)
|
||||
}
|
||||
|
||||
fun onJuspayPaymentCallbackReceived(juspayJsonResponseString: String) {
|
||||
NaviTrackEvent.trackEventOnClickStream(
|
||||
eventName =
|
||||
"${NAVI_PMT}_${NaviPaymentAnalyticScreenName.CARD_SCREEN.screenName}_juspay_payment_callback_received",
|
||||
"${NAVI_PMT}_${NaviPaymentAnalyticScreenName.CARD_SCREEN.screenName}_JuspayPaymentCallbackReceived",
|
||||
eventValues = mapOf("juspayResponse" to juspayJsonResponseString)
|
||||
)
|
||||
}
|
||||
@@ -470,7 +470,7 @@ class NaviPaymentAnalytics private constructor() {
|
||||
fun onBackPress(baseAttributes: Map<String, String>) {
|
||||
NaviTrackEvent.trackEventOnClickStream(
|
||||
eventName =
|
||||
"${NAVI_PMT}_${NaviPaymentAnalyticScreenName.CARD_SCREEN.screenName}_back_pressed",
|
||||
"${NAVI_PMT}_${NaviPaymentAnalyticScreenName.CARD_SCREEN.screenName}_BackPressed",
|
||||
eventValues = baseAttributes
|
||||
)
|
||||
}
|
||||
@@ -480,7 +480,7 @@ class NaviPaymentAnalytics private constructor() {
|
||||
addScreenName(baseAttributes, NaviPaymentAnalyticScreenName.CARD_SCREEN.screenName)
|
||||
NaviTrackEvent.trackEventOnClickStream(
|
||||
eventName =
|
||||
"${NAVI_PMT}_${NaviPaymentAnalyticScreenName.CARD_SCREEN.screenName}_landed",
|
||||
"${NAVI_PMT}_${NaviPaymentAnalyticScreenName.CARD_SCREEN.screenName}_Landed",
|
||||
eventValues = updatedAttributes
|
||||
)
|
||||
}
|
||||
@@ -493,7 +493,7 @@ class NaviPaymentAnalytics private constructor() {
|
||||
) {
|
||||
NaviTrackEvent.trackEventOnClickStream(
|
||||
eventName =
|
||||
"${NAVI_PMT}_${NaviPaymentAnalyticScreenName.CARD_SCREEN.screenName}_pay_now_clicked",
|
||||
"${NAVI_PMT}_${NaviPaymentAnalyticScreenName.CARD_SCREEN.screenName}_PayNowClicked",
|
||||
eventValues =
|
||||
baseAnalyticsParams.plus(
|
||||
mapOf(
|
||||
@@ -514,7 +514,7 @@ class NaviPaymentAnalytics private constructor() {
|
||||
addScreenName(baseAttributes, NaviPaymentAnalyticScreenName.CARD_SCREEN.screenName)
|
||||
NaviTrackEvent.trackEventOnClickStream(
|
||||
eventName =
|
||||
"${NAVI_PMT}_${NaviPaymentAnalyticScreenName.SDK_INTEGRATION_SCREEN.screenName}_landed",
|
||||
"${NAVI_PMT}_${NaviPaymentAnalyticScreenName.SDK_INTEGRATION_SCREEN.screenName}_Landed",
|
||||
eventValues = updatedAttributes
|
||||
)
|
||||
}
|
||||
@@ -522,7 +522,7 @@ class NaviPaymentAnalytics private constructor() {
|
||||
fun onInitiateSdkCalled(provider: String) {
|
||||
NaviTrackEvent.trackEventOnClickStream(
|
||||
eventName =
|
||||
"${NAVI_PMT}_${NaviPaymentAnalyticScreenName.SDK_INTEGRATION_SCREEN.screenName}_initiate_called",
|
||||
"${NAVI_PMT}_${NaviPaymentAnalyticScreenName.SDK_INTEGRATION_SCREEN.screenName}_InitiateCalled",
|
||||
eventValues = mapOf("provider" to provider)
|
||||
)
|
||||
}
|
||||
@@ -530,7 +530,7 @@ class NaviPaymentAnalytics private constructor() {
|
||||
fun onInitiateSdkCompleted(provider: String) {
|
||||
NaviTrackEvent.trackEventOnClickStream(
|
||||
eventName =
|
||||
"${NAVI_PMT}_${NaviPaymentAnalyticScreenName.SDK_INTEGRATION_SCREEN.screenName}_initiate_completed",
|
||||
"${NAVI_PMT}_${NaviPaymentAnalyticScreenName.SDK_INTEGRATION_SCREEN.screenName}_InitiateCompleted",
|
||||
eventValues = mapOf("provider" to provider)
|
||||
)
|
||||
}
|
||||
@@ -538,7 +538,7 @@ class NaviPaymentAnalytics private constructor() {
|
||||
fun onInitiateSdkError(provider: String, error: String) {
|
||||
NaviTrackEvent.trackEventOnClickStream(
|
||||
eventName =
|
||||
"${NAVI_PMT}_${NaviPaymentAnalyticScreenName.SDK_INTEGRATION_SCREEN.screenName}_initiate_error",
|
||||
"${NAVI_PMT}_${NaviPaymentAnalyticScreenName.SDK_INTEGRATION_SCREEN.screenName}_InitiateError",
|
||||
eventValues = mapOf("provider" to provider, "error" to error)
|
||||
)
|
||||
}
|
||||
@@ -546,7 +546,7 @@ class NaviPaymentAnalytics private constructor() {
|
||||
fun onSdkPaymentStarted(provider: String, payload: String) {
|
||||
NaviTrackEvent.trackEventOnClickStream(
|
||||
eventName =
|
||||
"${NAVI_PMT}_${NaviPaymentAnalyticScreenName.SDK_INTEGRATION_SCREEN.screenName}_payment_started",
|
||||
"${NAVI_PMT}_${NaviPaymentAnalyticScreenName.SDK_INTEGRATION_SCREEN.screenName}_PaymentStarted",
|
||||
eventValues = mapOf("provider" to provider, "payload" to payload)
|
||||
)
|
||||
}
|
||||
@@ -560,7 +560,7 @@ class NaviPaymentAnalytics private constructor() {
|
||||
) {
|
||||
NaviTrackEvent.trackEventOnClickStream(
|
||||
eventName =
|
||||
"${NAVI_PMT}_${NaviPaymentAnalyticScreenName.SDK_INTEGRATION_SCREEN.screenName}_payment_response_received",
|
||||
"${NAVI_PMT}_${NaviPaymentAnalyticScreenName.SDK_INTEGRATION_SCREEN.screenName}_PaymentResponseReceived",
|
||||
eventValues =
|
||||
mapOf(
|
||||
"status" to status,
|
||||
@@ -575,7 +575,7 @@ class NaviPaymentAnalytics private constructor() {
|
||||
fun onSdkPaymentError(provider: String, error: String) {
|
||||
NaviTrackEvent.trackEventOnClickStream(
|
||||
eventName =
|
||||
"${NAVI_PMT}_${NaviPaymentAnalyticScreenName.SDK_INTEGRATION_SCREEN.screenName}_payment_error",
|
||||
"${NAVI_PMT}_${NaviPaymentAnalyticScreenName.SDK_INTEGRATION_SCREEN.screenName}_error",
|
||||
eventValues = mapOf("provider" to provider, "error" to error)
|
||||
)
|
||||
}
|
||||
@@ -585,7 +585,7 @@ class NaviPaymentAnalytics private constructor() {
|
||||
|
||||
fun onJuspayInitStarted(payload: String, sourceActivityName: String) {
|
||||
NaviTrackEvent.trackEventOnClickStream(
|
||||
eventName = "${NAVI_PMT}_juspay_sdk_init_started",
|
||||
eventName = "${NAVI_PMT}_Juspay_SdkInitStarted",
|
||||
eventValues =
|
||||
mapOf("payload" to payload, "source_activity_name" to sourceActivityName)
|
||||
)
|
||||
@@ -593,28 +593,28 @@ class NaviPaymentAnalytics private constructor() {
|
||||
|
||||
fun onJuspayInitResponse(response: String) {
|
||||
NaviTrackEvent.trackEventOnClickStream(
|
||||
eventName = "${NAVI_PMT}_juspay_sdk_init_response",
|
||||
eventName = "${NAVI_PMT}_Juspay_SdkInitResponse",
|
||||
eventValues = mapOf("response" to response)
|
||||
)
|
||||
}
|
||||
|
||||
fun onJuspayProcessSdkCalled(sourceActivityName: String) {
|
||||
NaviTrackEvent.trackEventOnClickStream(
|
||||
eventName = "${NAVI_PMT}_juspay_process_sdk_called",
|
||||
eventName = "${NAVI_PMT}_Juspay_ProcessSdkCalled",
|
||||
eventValues = mapOf("source_activity_name" to sourceActivityName)
|
||||
)
|
||||
}
|
||||
|
||||
fun onJuspayProcessSdkResponse(response: String) {
|
||||
NaviTrackEvent.trackEventOnClickStream(
|
||||
eventName = "${NAVI_PMT}_juspay_process_sdk_response",
|
||||
eventName = "${NAVI_PMT}_Juspay_ProcessSdkResponse",
|
||||
eventValues = mapOf("response" to response)
|
||||
)
|
||||
}
|
||||
|
||||
fun onJuspaySdkLogs(log: String, logPayload: String) {
|
||||
NaviTrackEvent.trackEventOnClickStream(
|
||||
eventName = "${NAVI_PMT}_juspay_sdk_logs",
|
||||
eventName = "${NAVI_PMT}_Juspay_SdkLogs",
|
||||
eventValues = mapOf("log" to log, "log_payload" to logPayload)
|
||||
)
|
||||
}
|
||||
@@ -623,21 +623,21 @@ class NaviPaymentAnalytics private constructor() {
|
||||
inner class ErrorBottomSheet {
|
||||
fun onPrimaryCtaClick(primaryButtonText: String) {
|
||||
NaviTrackEvent.trackEventOnClickStream(
|
||||
eventName = "${NAVI_PMT}_error_bottom_sheet_primary_cta_click",
|
||||
eventName = "${NAVI_PMT}_error_BottomSheetPrimaryCtaClick",
|
||||
eventValues = mapOf("cta_text" to primaryButtonText)
|
||||
)
|
||||
}
|
||||
|
||||
fun onSecondaryCtaClick(secondaryButtonText: String) {
|
||||
NaviTrackEvent.trackEventOnClickStream(
|
||||
eventName = "${NAVI_PMT}_error_bottom_sheet_secondary_cta_click",
|
||||
eventName = "${NAVI_PMT}_error_BottomSheetSecondaryCtaClick",
|
||||
eventValues = mapOf("cta_text" to secondaryButtonText)
|
||||
)
|
||||
}
|
||||
|
||||
fun onDismissClick() {
|
||||
NaviTrackEvent.trackEventOnClickStream(
|
||||
eventName = "${NAVI_PMT}_error_bottom_sheet_dismiss_click"
|
||||
eventName = "${NAVI_PMT}_error_BottomSheetDismissClick"
|
||||
)
|
||||
}
|
||||
|
||||
@@ -699,7 +699,7 @@ class NaviPaymentAnalytics private constructor() {
|
||||
const val CATEGORY_ID = "category_id"
|
||||
const val PAYMENT_ORDER_REFERENCE_ID = "payment_order_ref_id"
|
||||
|
||||
const val NAVI_PMT = "navi_pmt"
|
||||
const val NAVI_PMT = "NaviPMT"
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -7,12 +7,14 @@
|
||||
|
||||
package com.navi.payment.nativepayment.repository
|
||||
|
||||
import com.navi.common.checkmate.model.MetricInfo
|
||||
import com.navi.common.model.ModuleName
|
||||
import com.navi.common.network.models.RepoResult
|
||||
import com.navi.common.network.retrofit.ResponseCallback
|
||||
import com.navi.payment.model.common.SignalPaymentData
|
||||
import com.navi.payment.model.initiatesdk.PaymentPrefetchMethodRequest
|
||||
import com.navi.payment.nativepayment.model.BasePaymentMethodResponse
|
||||
import com.navi.payment.nativepayment.model.NetBankingPaymentInstrument
|
||||
import com.navi.payment.network.retrofit.RetrofitService
|
||||
import com.navi.payment.network.util.PaymentsSdkRetrofit
|
||||
import com.navi.payment.paymentscreen.model.PayNowResponse
|
||||
@@ -32,74 +34,111 @@ constructor(@PaymentsSdkRetrofit private val retrofitService: RetrofitService) :
|
||||
|
||||
suspend fun fetchTransactionStatus(
|
||||
token: String,
|
||||
request: TransactionStatusRequest? = null
|
||||
request: TransactionStatusRequest? = null,
|
||||
metricInfo: MetricInfo<RepoResult<TransactionStatusResponse>>,
|
||||
): RepoResult<TransactionStatusResponse> =
|
||||
apiResponseCallback(
|
||||
retrofitService.fetchTransactionStatus(
|
||||
token = token,
|
||||
paymentSdkVersion = COMPOSE_PAYMENT_SDK_VERSION,
|
||||
xTarget = PAYMENT_GATEWAY_MODULE,
|
||||
data = request
|
||||
)
|
||||
response =
|
||||
retrofitService.fetchTransactionStatus(
|
||||
token = token,
|
||||
paymentSdkVersion = COMPOSE_PAYMENT_SDK_VERSION,
|
||||
xTarget = PAYMENT_GATEWAY_MODULE,
|
||||
data = request
|
||||
),
|
||||
metricInfo = metricInfo
|
||||
)
|
||||
|
||||
suspend fun fetchScreenData(
|
||||
token: String,
|
||||
paymentPrefetchMethodRequest: PaymentPrefetchMethodRequest
|
||||
paymentPrefetchMethodRequest: PaymentPrefetchMethodRequest,
|
||||
metricInfo: MetricInfo<RepoResult<BasePaymentMethodResponse>>
|
||||
): RepoResult<BasePaymentMethodResponse> {
|
||||
return apiResponseCallback(
|
||||
retrofitService.fetchScreenData(
|
||||
token,
|
||||
COMPOSE_PAYMENT_SDK_VERSION,
|
||||
ModuleName.PG.name,
|
||||
paymentPrefetchMethodRequest
|
||||
)
|
||||
response =
|
||||
retrofitService.fetchScreenData(
|
||||
token,
|
||||
COMPOSE_PAYMENT_SDK_VERSION,
|
||||
ModuleName.PG.name,
|
||||
paymentPrefetchMethodRequest
|
||||
),
|
||||
metricInfo = metricInfo
|
||||
)
|
||||
}
|
||||
|
||||
suspend fun verifyVPAId(
|
||||
token: String,
|
||||
data: ValidateVpaRequest? = null
|
||||
data: ValidateVpaRequest? = null,
|
||||
metricInfo: MetricInfo<RepoResult<ValidateVPAResponse>>
|
||||
): RepoResult<ValidateVPAResponse> {
|
||||
return apiResponseCallback(
|
||||
retrofitService.verifyVPAId(
|
||||
token = token,
|
||||
xTarget = PAYMENT_GATEWAY_MODULE,
|
||||
data = data
|
||||
)
|
||||
response =
|
||||
retrofitService.verifyVPAId(
|
||||
token = token,
|
||||
xTarget = PAYMENT_GATEWAY_MODULE,
|
||||
data = data
|
||||
),
|
||||
metricInfo = metricInfo
|
||||
)
|
||||
}
|
||||
|
||||
suspend fun postPayNow(token: String?, data: Any? = null): RepoResult<PayNowResponse> {
|
||||
suspend fun postPayNow(
|
||||
token: String?,
|
||||
data: Any? = null,
|
||||
metricInfo: MetricInfo<RepoResult<PayNowResponse>>
|
||||
): RepoResult<PayNowResponse> {
|
||||
return apiResponseCallback(
|
||||
retrofitService.postPayNow(
|
||||
token = token,
|
||||
xTarget = PAYMENT_GATEWAY_MODULE,
|
||||
data = data,
|
||||
paymentSdkVersion = COMPOSE_PAYMENT_SDK_VERSION
|
||||
)
|
||||
response =
|
||||
retrofitService.postPayNow(
|
||||
token = token,
|
||||
xTarget = PAYMENT_GATEWAY_MODULE,
|
||||
data = data,
|
||||
paymentSdkVersion = COMPOSE_PAYMENT_SDK_VERSION
|
||||
),
|
||||
metricInfo = metricInfo
|
||||
)
|
||||
}
|
||||
|
||||
suspend fun postSdkExitSignal(token: String, data: SignalPaymentData) {
|
||||
suspend fun postSdkExitSignal(
|
||||
token: String,
|
||||
data: SignalPaymentData,
|
||||
metricInfo: MetricInfo<RepoResult<Any>>
|
||||
) {
|
||||
apiResponseCallback(
|
||||
retrofitService.postPaymentStatusV2(
|
||||
token = token,
|
||||
xTarget = PAYMENT_GATEWAY_MODULE,
|
||||
data = data,
|
||||
paymentSdkVersion = COMPOSE_PAYMENT_SDK_VERSION
|
||||
)
|
||||
response =
|
||||
retrofitService.postPaymentStatusV2(
|
||||
token = token,
|
||||
xTarget = PAYMENT_GATEWAY_MODULE,
|
||||
data = data,
|
||||
paymentSdkVersion = COMPOSE_PAYMENT_SDK_VERSION
|
||||
),
|
||||
metricInfo = metricInfo
|
||||
)
|
||||
}
|
||||
|
||||
suspend fun postFeedbackBottomsheet(token: String, request: PaymentFeedbackRequest) {
|
||||
suspend fun postFeedbackBottomsheet(
|
||||
token: String,
|
||||
request: PaymentFeedbackRequest,
|
||||
metricInfo: MetricInfo<RepoResult<Any>>
|
||||
) {
|
||||
apiResponseCallback(
|
||||
retrofitService.postPaymentFeedback(
|
||||
token = token,
|
||||
paymentSdkVersion = COMPOSE_PAYMENT_SDK_VERSION,
|
||||
xTarget = PAYMENT_GATEWAY_MODULE,
|
||||
data = request
|
||||
)
|
||||
response =
|
||||
retrofitService.postPaymentFeedback(
|
||||
token = token,
|
||||
paymentSdkVersion = COMPOSE_PAYMENT_SDK_VERSION,
|
||||
xTarget = PAYMENT_GATEWAY_MODULE,
|
||||
data = request
|
||||
),
|
||||
metricInfo = metricInfo
|
||||
)
|
||||
}
|
||||
|
||||
suspend fun fetchBanks(
|
||||
token: String,
|
||||
metricInfo: MetricInfo<RepoResult<NetBankingPaymentInstrument>>
|
||||
): RepoResult<NetBankingPaymentInstrument> {
|
||||
return apiResponseCallback(
|
||||
response = retrofitService.fetchBanksCompose(token, PAYMENT_GATEWAY_MODULE),
|
||||
metricInfo = metricInfo
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -75,6 +75,7 @@ import com.navi.payment.R
|
||||
import com.navi.payment.juspay.HyperServicesHolder
|
||||
import com.navi.payment.juspay.JusPayUtil
|
||||
import com.navi.payment.juspay.JuspayCallbackWrapper
|
||||
import com.navi.payment.nativepayment.NaviPaymentAnalyticScreenName
|
||||
import com.navi.payment.nativepayment.NaviPaymentAnalytics
|
||||
import com.navi.payment.nativepayment.activity.NaviPaymentActivity
|
||||
import com.navi.payment.nativepayment.components.NPSHeader
|
||||
@@ -539,4 +540,7 @@ private fun TriggerOnLandEvent(
|
||||
LaunchedEffect(Unit) {
|
||||
naviPaymentAnalytics.onScreenLanded(cardDetailScreenVM.getAnalyticsParams())
|
||||
}
|
||||
LaunchedEffect(Unit) {
|
||||
cardDetailScreenVM.recordScreenLatency(NaviPaymentAnalyticScreenName.CARD_SCREEN.screenName)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -28,6 +28,7 @@ import androidx.compose.runtime.rememberCoroutineScope
|
||||
import androidx.compose.runtime.snapshotFlow
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.graphics.Color
|
||||
import androidx.compose.ui.res.stringResource
|
||||
import androidx.compose.ui.unit.dp
|
||||
import androidx.hilt.navigation.compose.hiltViewModel
|
||||
import androidx.lifecycle.ViewModelProvider
|
||||
@@ -65,6 +66,7 @@ import com.navi.pay.utils.ALL_ENABLED_ACCOUNTS
|
||||
import com.navi.pay.utils.NAVI_PAY_UPI_URI_KEY
|
||||
import com.navi.pay.utils.SAVINGS_ONLY_ENABLED_ACCOUNTS
|
||||
import com.navi.pay.utils.isAccountIdOfTypeUpiLite
|
||||
import com.navi.payment.R as PaymentR
|
||||
import com.navi.payment.model.initiatesdk.AdditionalParam
|
||||
import com.navi.payment.nativepayment.NaviPaymentAnalyticScreenName
|
||||
import com.navi.payment.nativepayment.NaviPaymentAnalytics
|
||||
@@ -161,17 +163,20 @@ fun MPSScreen(
|
||||
|
||||
LaunchedEffect(key1 = Unit) {
|
||||
paymentViewModel.sendEvent(
|
||||
"${NAVI_PMT}_${NaviPaymentAnalyticScreenName.MINI_PAYMENT_SCREEN.screenName}_landed",
|
||||
"${NAVI_PMT}_${NaviPaymentAnalyticScreenName.MINI_PAYMENT_SCREEN.screenName}_Landed",
|
||||
mapOf(
|
||||
"screenName" to NaviPaymentScreenType.MINI_PAYMENT_SCREEN.name,
|
||||
)
|
||||
)
|
||||
mpsViewModel.recordScreenLatency(
|
||||
NaviPaymentAnalyticScreenName.MINI_PAYMENT_SCREEN.screenName
|
||||
)
|
||||
if (
|
||||
coinBurnDetails.isNotNull() &&
|
||||
bottomSheetStateHolder.bottomSheetUIState is MPSScreenUtils.MPSScreenType.Onboarded
|
||||
) {
|
||||
paymentViewModel.sendEvent(
|
||||
"${NAVI_PMT}_${NaviPaymentAnalyticScreenName.MINI_PAYMENT_SCREEN.screenName}_coin_burn_banner_viewed",
|
||||
"${NAVI_PMT}_${NaviPaymentAnalyticScreenName.MINI_PAYMENT_SCREEN.screenName}_CoinBurnBannerViewed",
|
||||
mapOf(
|
||||
"amount" to paymentAmount.toString(),
|
||||
"redeemable_coins" to coinBurnDetails?.redeemableCoins.toString()
|
||||
@@ -179,7 +184,7 @@ fun MPSScreen(
|
||||
)
|
||||
} else if (coinEarnBannerDetails.isNotNull()) {
|
||||
paymentViewModel.sendEvent(
|
||||
"${NAVI_PMT}_${NaviPaymentAnalyticScreenName.MINI_PAYMENT_SCREEN.screenName}_coin_earn_banner_viewed",
|
||||
"${NAVI_PMT}_${NaviPaymentAnalyticScreenName.MINI_PAYMENT_SCREEN.screenName}_CoinEarnBannerViewed",
|
||||
mapOf("amount" to paymentAmount.toString())
|
||||
)
|
||||
}
|
||||
@@ -202,7 +207,7 @@ fun MPSScreen(
|
||||
|
||||
val pmsCallBack: (status: PMSSendMoneyStatus) -> Unit = { pmsSendMoneyStatus ->
|
||||
paymentViewModel.sendEvent(
|
||||
"${NAVI_PMT}_${NaviPaymentAnalyticScreenName.MINI_PAYMENT_SCREEN.screenName}_redirection_from_upi",
|
||||
"${NAVI_PMT}_${NaviPaymentAnalyticScreenName.MINI_PAYMENT_SCREEN.screenName}_RedirectionFromNaviUpi",
|
||||
mapOf("entry_point" to UpiIntent.SEND_MONEY.name)
|
||||
)
|
||||
when (pmsSendMoneyStatus) {
|
||||
@@ -272,7 +277,7 @@ fun MPSScreen(
|
||||
.filter { it.infoMessage.isNotNullAndNotEmpty() }
|
||||
.forEach {
|
||||
paymentViewModel.sendEvent(
|
||||
"${NAVI_PMT}_${NaviPaymentAnalyticScreenName.MINI_PAYMENT_SCREEN.screenName}_info_message_shown",
|
||||
"${NAVI_PMT}_${NaviPaymentAnalyticScreenName.MINI_PAYMENT_SCREEN.screenName}_NaviUpiInfoMessageShown",
|
||||
mapOf(
|
||||
"info_message" to it.infoMessage.orEmpty(),
|
||||
"is_upi_lite" to it.accountId.isAccountIdOfTypeUpiLite().toString()
|
||||
@@ -346,7 +351,7 @@ fun MPSScreen(
|
||||
as? NaviPayProcessPayload)
|
||||
val payeeEntity = Uri.parse(payload?.naviPayUpiUriKey).getPayeeEntity(true)
|
||||
paymentViewModel.sendEvent(
|
||||
"${NAVI_PMT}_${NaviPaymentAnalyticScreenName.MINI_PAYMENT_SCREEN.screenName}_redirection_to_upi",
|
||||
"${NAVI_PMT}_${NaviPaymentAnalyticScreenName.MINI_PAYMENT_SCREEN.screenName}_RedirectionToNaviUpi",
|
||||
mapOf(
|
||||
"entry_point" to UpiIntent.SEND_MONEY.name,
|
||||
NAVI_PAY_UPI_URI_KEY to payload?.naviPayUpiUriKey.orEmpty(),
|
||||
@@ -384,7 +389,7 @@ fun MPSScreen(
|
||||
) { result ->
|
||||
val resultResponse = result.data?.extras?.getString(NAVI_PAY_RESPONSE)
|
||||
paymentViewModel.sendEvent(
|
||||
"${NAVI_PMT}_${NaviPaymentAnalyticScreenName.MINI_PAYMENT_SCREEN.screenName}_redirection_from_upi",
|
||||
"${NAVI_PMT}_${NaviPaymentAnalyticScreenName.MINI_PAYMENT_SCREEN.screenName}_RedirectionFromNaviUpi",
|
||||
mapOf("entry_point" to result.data?.extras?.getString("type").orEmpty())
|
||||
)
|
||||
val payloadJson = resultResponse.stringToJsonObject()
|
||||
@@ -418,9 +423,16 @@ fun MPSScreen(
|
||||
try {
|
||||
if (mpsViewModel.isUserOnboarded().not()) {
|
||||
paymentViewModel.sendEvent(
|
||||
"${NAVI_PMT}_${NaviPaymentAnalyticScreenName.MINI_PAYMENT_SCREEN.screenName}_pay_via_navi_upi",
|
||||
"${NAVI_PMT}_${NaviPaymentAnalyticScreenName.MINI_PAYMENT_SCREEN.screenName}_PayNowClickedNonOnboarded",
|
||||
mapOf("is_discount_applied" to isDiscountApplied.toString())
|
||||
)
|
||||
paymentViewModel.sendEvent(
|
||||
"${NAVI_PMT}_${NaviPaymentAnalyticScreenName.MINI_PAYMENT_SCREEN.screenName}_RedirectionToNaviUpi",
|
||||
mapOf(
|
||||
"is_discount_applied" to isDiscountApplied.toString(),
|
||||
"action" to NaviPayOnboardingActionsType.E2E_ONBOARDING.name
|
||||
)
|
||||
)
|
||||
mpsViewModel.updateBottomSheetUIState(false)
|
||||
naviPaymentActivity.launchOnboardingSDK(
|
||||
action = NaviPayOnboardingActionsType.E2E_ONBOARDING.name,
|
||||
@@ -431,19 +443,19 @@ fun MPSScreen(
|
||||
)
|
||||
} else if (selectedBankAccount?.isMPinSet.orFalse().not()) {
|
||||
paymentViewModel.sendEvent(
|
||||
"${NAVI_PMT}_${NaviPaymentAnalyticScreenName.MINI_PAYMENT_SCREEN.screenName}_set_upi_pin_btn_click",
|
||||
"${NAVI_PMT}_${NaviPaymentAnalyticScreenName.MINI_PAYMENT_SCREEN.screenName}_SetUpiPinBtnClick",
|
||||
mapOf("is_discount_applied" to isDiscountApplied.toString())
|
||||
)
|
||||
val data = getMpinSetAction(selectedBankAccount?.accountId.orEmpty())
|
||||
paymentViewModel.sendEvent(
|
||||
"${NAVI_PMT}_${NaviPaymentAnalyticScreenName.MINI_PAYMENT_SCREEN.screenName}_redirection_to_upi",
|
||||
"${NAVI_PMT}_${NaviPaymentAnalyticScreenName.MINI_PAYMENT_SCREEN.screenName}_RedirectionToNaviUpi",
|
||||
mapOf("entry_point" to UpiIntent.SET_PIN.name)
|
||||
)
|
||||
mpsViewModel.updateBottomSheetUIState(mpsViewModel.isNaviUpiOnboarded.value)
|
||||
mpsViewModel.startAction(naviPaymentActivity, upiResultLauncher, data)
|
||||
} else {
|
||||
paymentViewModel.sendEvent(
|
||||
"${NAVI_PMT}_${NaviPaymentAnalyticScreenName.MINI_PAYMENT_SCREEN.screenName}_mps_pay_now",
|
||||
"${NAVI_PMT}_${NaviPaymentAnalyticScreenName.MINI_PAYMENT_SCREEN.screenName}_PayNowClicked",
|
||||
mapOf("is_discount_applied" to isDiscountApplied.toString())
|
||||
)
|
||||
mpsViewModel.startPayAmount()
|
||||
@@ -455,7 +467,7 @@ fun MPSScreen(
|
||||
|
||||
val onOtherMethodsClick: (shouldFinishOnBackPress: Boolean) -> Unit = {
|
||||
paymentViewModel.sendEvent(
|
||||
"${NAVI_PMT}_${NaviPaymentAnalyticScreenName.MINI_PAYMENT_SCREEN.screenName}_other_methods_click",
|
||||
"${NAVI_PMT}_${NaviPaymentAnalyticScreenName.MINI_PAYMENT_SCREEN.screenName}_OtherMethodsClick",
|
||||
mapOf("is_discount_applied" to isDiscountApplied.toString())
|
||||
)
|
||||
if (paymentViewModel.isNpsMigrationEnabled()) {
|
||||
@@ -504,10 +516,10 @@ fun MPSScreen(
|
||||
val onAddAccountClick = {
|
||||
try {
|
||||
paymentViewModel.sendEvent(
|
||||
"${NAVI_PMT}_${NaviPaymentAnalyticScreenName.MINI_PAYMENT_SCREEN.screenName}_add_upi_account_click"
|
||||
"${NAVI_PMT}_${NaviPaymentAnalyticScreenName.MINI_PAYMENT_SCREEN.screenName}_AddUpiAccountClick"
|
||||
)
|
||||
paymentViewModel.sendEvent(
|
||||
"${NAVI_PMT}_${NaviPaymentAnalyticScreenName.MINI_PAYMENT_SCREEN.screenName}_redirection_to_upi",
|
||||
"${NAVI_PMT}_${NaviPaymentAnalyticScreenName.MINI_PAYMENT_SCREEN.screenName}_RedirectionToUpi",
|
||||
mapOf("entry_point" to UpiIntent.ADD_BANK_ACCOUNT.name)
|
||||
)
|
||||
mpsViewModel.updateBottomSheetUIState(false)
|
||||
@@ -537,7 +549,7 @@ fun MPSScreen(
|
||||
|
||||
val onDiscountClicked = { isDiscountApplied: Boolean ->
|
||||
paymentViewModel.sendEvent(
|
||||
"${NAVI_PMT}_${NaviPaymentAnalyticScreenName.MINI_PAYMENT_SCREEN.screenName}_discount_apply_click",
|
||||
"${NAVI_PMT}_${NaviPaymentAnalyticScreenName.MINI_PAYMENT_SCREEN.screenName}_DiscountApplyClick",
|
||||
mapOf(
|
||||
"is_discount_applied" to isDiscountApplied.toString(),
|
||||
"amount" to paymentAmount.toString(),
|
||||
@@ -638,14 +650,16 @@ fun MPSScreen(
|
||||
)
|
||||
BottomSheetContentWithVerticalPrimarySecondaryButton(
|
||||
iconId = R.drawable.ic_error_outlined,
|
||||
headerText = errorData?.error?.title.orElse("Something went wrong!"),
|
||||
headerText =
|
||||
errorData
|
||||
?.error
|
||||
?.title
|
||||
.orElse(stringResource(PaymentR.string.something_went_wrong)),
|
||||
descriptionText =
|
||||
errorData
|
||||
?.error
|
||||
?.message
|
||||
.orElse(
|
||||
"We are facing a technical issue at this time. Please check after some time."
|
||||
),
|
||||
.orElse(stringResource(PaymentR.string.technical_issue)),
|
||||
primaryButtonText =
|
||||
errorData?.error?.actions?.firstOrNull()?.title.orElse("Try again"),
|
||||
secondaryButtonText =
|
||||
@@ -685,7 +699,7 @@ private fun sendLatencyEvent(paymentViewModel: NaviPaymentViewModel) {
|
||||
System.currentTimeMillis() - paymentViewModel.getPaymentInitiateStartTime()
|
||||
TemporaryStorageHelper.payNowClickTime = 0L
|
||||
paymentViewModel.sendEvent(
|
||||
"${NAVI_PMT}_${NaviPaymentAnalyticScreenName.MINI_PAYMENT_SCREEN.screenName}_app_latency",
|
||||
"${NAVI_PMT}_${NaviPaymentAnalyticScreenName.MINI_PAYMENT_SCREEN.screenName}_AppLatency",
|
||||
mapOf(
|
||||
Pair("flow", "new"),
|
||||
Pair("latency_ms", timeDifference.toString()),
|
||||
|
||||
@@ -95,6 +95,7 @@ import com.navi.payment.juspay.HyperServicesHolder
|
||||
import com.navi.payment.juspay.JusPayUtil
|
||||
import com.navi.payment.juspay.JuspayCallbackWrapper
|
||||
import com.navi.payment.model.initiatesdk.PaymentSDKProvider
|
||||
import com.navi.payment.nativepayment.NaviPaymentAnalyticScreenName
|
||||
import com.navi.payment.nativepayment.NaviPaymentAnalytics
|
||||
import com.navi.payment.nativepayment.activity.NaviPaymentActivity
|
||||
import com.navi.payment.nativepayment.common.theme.NaviPmsColor
|
||||
@@ -165,7 +166,12 @@ fun NPSScreenRoot(
|
||||
val isKeyboardVisible = WindowInsets.isImeVisible
|
||||
val npsScreenState by npsViewModel.state.collectAsStateWithLifecycle()
|
||||
|
||||
LaunchedEffect(Unit) { naviPaymentAnalytics.onNPSLanded(npsViewModel.getAnalyticsParams()) }
|
||||
LaunchedEffect(Unit) {
|
||||
naviPaymentAnalytics.onNPSLanded(npsViewModel.getAnalyticsParams())
|
||||
npsViewModel.recordScreenLatency(
|
||||
NaviPaymentAnalyticScreenName.FULL_PAYMENT_SCREEN.screenName
|
||||
)
|
||||
}
|
||||
|
||||
val scrollState = rememberScrollState()
|
||||
EffectsHandler(
|
||||
|
||||
@@ -52,6 +52,7 @@ import com.navi.payment.R
|
||||
import com.navi.payment.juspay.JusPayUtil
|
||||
import com.navi.payment.juspay.JuspayCallbackWrapper
|
||||
import com.navi.payment.model.initiatesdk.PaymentSDKProvider
|
||||
import com.navi.payment.nativepayment.NaviPaymentAnalyticScreenName
|
||||
import com.navi.payment.nativepayment.NaviPaymentAnalytics
|
||||
import com.navi.payment.nativepayment.activity.NaviPaymentActivity
|
||||
import com.navi.payment.nativepayment.components.BankSearchField
|
||||
@@ -92,6 +93,9 @@ fun NetBankingScreenRoot(
|
||||
val isKeyboardVisible = WindowInsets.isImeVisible
|
||||
LaunchedEffect(Unit) {
|
||||
naviPaymentAnalytics.onScreenLanded(netBankingViewModel.getBaseAnalyticsParams())
|
||||
netBankingViewModel.recordScreenLatency(
|
||||
screenName = NaviPaymentAnalyticScreenName.NET_BANKING_SCREEN.screenName
|
||||
)
|
||||
}
|
||||
|
||||
ObserveBottomSheetEvents(activity = naviPaymentActivity, onEvent = netBankingViewModel::onEvent)
|
||||
|
||||
@@ -70,6 +70,7 @@ import com.navi.payment.juspay.HyperServicesHolder
|
||||
import com.navi.payment.juspay.JusPayUtil
|
||||
import com.navi.payment.juspay.JuspayCallbackWrapper
|
||||
import com.navi.payment.model.initiatesdk.PaymentSDKProvider
|
||||
import com.navi.payment.nativepayment.NaviPaymentAnalyticScreenName
|
||||
import com.navi.payment.nativepayment.NaviPaymentAnalytics
|
||||
import com.navi.payment.nativepayment.activity.NaviPaymentActivity
|
||||
import com.navi.payment.nativepayment.common.theme.NaviPmsColor
|
||||
@@ -119,6 +120,9 @@ fun UpiIntentScreenRoot(
|
||||
|
||||
LaunchedEffect(Unit) {
|
||||
naviPaymentAnalytics.onScreenLanded(upiIntentViewModel.getAnalyticsParams())
|
||||
upiIntentViewModel.recordScreenLatency(
|
||||
NaviPaymentAnalyticScreenName.UPI_INTENT_SCREEN.screenName
|
||||
)
|
||||
}
|
||||
|
||||
EffectsHandler(
|
||||
|
||||
@@ -41,6 +41,7 @@ import com.navi.payment.utils.Constants.DATA
|
||||
import com.navi.payment.utils.Constants.LITMUS_EXPERIMENT_NAVI_PMT_NPS_MIGRATION
|
||||
import com.navi.payment.utils.Constants.MIN_APP_VERSION
|
||||
import com.navi.payment.utils.getInstalledUpiApps
|
||||
import com.navi.payment.utils.getPMSMetricInfo
|
||||
import com.navi.paymentclients.model.thirdparty.UpiResultResponse
|
||||
import dagger.hilt.android.lifecycle.HiltViewModel
|
||||
import javax.inject.Inject
|
||||
@@ -97,7 +98,11 @@ constructor(
|
||||
val response =
|
||||
paymentRepository.fetchScreenData(
|
||||
paymentSdkInitParams.token,
|
||||
paymentPrefetchMethodRequest
|
||||
paymentPrefetchMethodRequest,
|
||||
metricInfo =
|
||||
getPMSMetricInfo(
|
||||
screenName = NaviPaymentAnalyticScreenName.CHECKOUT_SCREEN.screenName
|
||||
)
|
||||
)
|
||||
if (response.isSuccessWithData()) {
|
||||
paymentDataProvider.updatePaymentMethodResponse(response.data)
|
||||
|
||||
@@ -75,6 +75,7 @@ import com.navi.payment.utils.Constants.DEFAULT_MAX_CVV_LENGTH
|
||||
import com.navi.payment.utils.Constants.DEFAULT_MIN_CARD_NUMBER_LENGTH
|
||||
import com.navi.payment.utils.Constants.DEFAULT_MIN_CVV_LENGTH
|
||||
import com.navi.payment.utils.Constants.DELAY_FOR_HIDING_KEYBOARD
|
||||
import com.navi.payment.utils.getPMSMetricInfo
|
||||
import com.navi.payment.utils.usecases.CardValidator
|
||||
import com.navi.payment.utils.usecases.CardValidator.CardValidationError
|
||||
import com.navi.payment.utils.usecases.CardValidator.CardValidationError.CREDIT_CARD_NOT_SUPPORTED
|
||||
@@ -142,6 +143,7 @@ constructor(
|
||||
private var isInteractionAllowed = false
|
||||
|
||||
init {
|
||||
recordScreenLandTime(NaviPaymentAnalyticScreenName.CARD_SCREEN.screenName)
|
||||
processPaymentMethodResponse()
|
||||
updateInternalState(internalState.copy(paymentSdkInitParams = getSDKInitParams()))
|
||||
baseAnalyticsParams.apply {
|
||||
@@ -318,7 +320,12 @@ constructor(
|
||||
viewModelScope.safeLaunch(Dispatchers.IO) {
|
||||
paymentRepository.postSdkExitSignal(
|
||||
token = internalState.paymentSdkInitParams?.token.orEmpty(),
|
||||
data = SignalPaymentData()
|
||||
data = SignalPaymentData(),
|
||||
metricInfo =
|
||||
getPMSMetricInfo(
|
||||
screenName = NaviPaymentAnalyticScreenName.CARD_SCREEN.screenName,
|
||||
isNae = { false }
|
||||
)
|
||||
)
|
||||
_effect.emit(CardDetailScreenEffect.PostResultAndFinish)
|
||||
}
|
||||
@@ -400,7 +407,11 @@ constructor(
|
||||
val response =
|
||||
paymentRepository.postPayNow(
|
||||
token = internalState.paymentSdkInitParams?.token,
|
||||
data = payNowRequest
|
||||
data = payNowRequest,
|
||||
metricInfo =
|
||||
getPMSMetricInfo(
|
||||
screenName = NaviPaymentAnalyticScreenName.CARD_SCREEN.screenName
|
||||
)
|
||||
)
|
||||
if (response.isSuccessWithData()) {
|
||||
savePayNowResponse(response)
|
||||
@@ -663,11 +674,15 @@ constructor(
|
||||
in 1 ..< CARD_NETWORK_VALIDATION_MIN_LENGTH -> clearBrandLogoIfNotEmpty()
|
||||
14 -> {
|
||||
if (
|
||||
validateCardNumberCompletely(
|
||||
newCardNumber = newCardNumber,
|
||||
shouldShowError = false
|
||||
)
|
||||
.isValid
|
||||
state.value.cardNetwork.equals(
|
||||
CardValidator.CardNetworks.DINERS.name,
|
||||
ignoreCase = true
|
||||
) &&
|
||||
validateCardNumberCompletely(
|
||||
newCardNumber = newCardNumber,
|
||||
shouldShowError = true
|
||||
)
|
||||
.isValid
|
||||
) {
|
||||
_effect.emit(CardDetailScreenEffect.MoveFocus)
|
||||
}
|
||||
|
||||
@@ -19,6 +19,8 @@ import com.navi.base.utils.isNotNullAndNotEmpty
|
||||
import com.navi.base.utils.orFalse
|
||||
import com.navi.base.utils.orTrue
|
||||
import com.navi.base.utils.orZero
|
||||
import com.navi.common.checkmate.core.CheckMateManager
|
||||
import com.navi.common.checkmate.model.MetricInfo
|
||||
import com.navi.common.network.models.isSuccessWithData
|
||||
import com.navi.common.upi.UpiDataType
|
||||
import com.navi.common.utils.toJsonObject
|
||||
@@ -72,6 +74,7 @@ import com.navi.payment.turbocheckout.model.PayAmountRequest
|
||||
import com.navi.payment.turbocheckout.ui.PayNowState
|
||||
import com.navi.payment.utils.Constants
|
||||
import com.navi.payment.utils.Constants.COIN_DISCOUNT_APPLY_DELAY
|
||||
import com.navi.payment.utils.getPMSMetricInfo
|
||||
import com.navi.payment.utils.roundTo
|
||||
import com.navi.paymentclients.model.thirdparty.UpiResultResponse
|
||||
import dagger.hilt.android.lifecycle.HiltViewModel
|
||||
@@ -180,6 +183,7 @@ constructor(
|
||||
val feedBackComment = _feedBackComment.asStateFlow()
|
||||
|
||||
init {
|
||||
recordScreenLandTime(screenName)
|
||||
initSdkInitParams()
|
||||
getPaymentMethodData()
|
||||
viewModelScope.launch(Dispatchers.IO) { getNaviUpiConnectedAccounts() }
|
||||
@@ -399,6 +403,9 @@ constructor(
|
||||
)
|
||||
)
|
||||
} else null
|
||||
),
|
||||
getPMSMetricInfo(
|
||||
screenName = NaviPaymentAnalyticScreenName.MINI_PAYMENT_SCREEN.screenName
|
||||
)
|
||||
)
|
||||
|
||||
@@ -465,7 +472,15 @@ constructor(
|
||||
val response =
|
||||
paymentRepository.fetchScreenData(
|
||||
paymentSdkInitParams?.token!!,
|
||||
paymentPrefetchMethodRequest
|
||||
paymentPrefetchMethodRequest,
|
||||
getPMSMetricInfo(
|
||||
screenName =
|
||||
NaviPaymentAnalyticScreenName.MINI_PAYMENT_SCREEN.screenName,
|
||||
isNae = { response ->
|
||||
!(response.isSuccessWithData() &&
|
||||
(response.data as? S2sPaymentMethodResponse).isNotNull())
|
||||
}
|
||||
)
|
||||
)
|
||||
if (
|
||||
response.isSuccessWithData() &&
|
||||
@@ -478,7 +493,7 @@ constructor(
|
||||
bottomSheetUIState =
|
||||
MPSScreenUtils.MPSScreenType.Error(
|
||||
PaymentErrorData(
|
||||
error = response.errors?.firstOrNull(),
|
||||
error = response.toGenericErrorResponse(),
|
||||
errorReason = MPSErrorReason.GetMethodsError
|
||||
)
|
||||
),
|
||||
@@ -487,6 +502,12 @@ constructor(
|
||||
}
|
||||
}
|
||||
} else {
|
||||
CheckMateManager.logAppErrorEvent(
|
||||
metricInfo = MetricInfo.PMSMetric<Any>(screen = screenName),
|
||||
errorCode = MPSErrorReason.TokenNotFoundError.toString(),
|
||||
errorTitle = resourceProvider.getString(R.string.something_went_wrong),
|
||||
errorDes = resourceProvider.getString(R.string.technical_issue),
|
||||
)
|
||||
updateBottomSheetUIState(
|
||||
showBottomSheet = true,
|
||||
bottomSheetUIState =
|
||||
@@ -641,7 +662,16 @@ constructor(
|
||||
fun postSdkExitSignal() {
|
||||
coroutineScope.safeLaunch(Dispatchers.IO) {
|
||||
paymentSdkInitParams?.token?.let {
|
||||
paymentRepository.postSdkExitSignal(token = it, data = SignalPaymentData())
|
||||
paymentRepository.postSdkExitSignal(
|
||||
token = it,
|
||||
data = SignalPaymentData(),
|
||||
metricInfo =
|
||||
getPMSMetricInfo(
|
||||
screenName =
|
||||
NaviPaymentAnalyticScreenName.MINI_PAYMENT_SCREEN.screenName,
|
||||
isNae = { false }
|
||||
)
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -658,6 +688,12 @@ constructor(
|
||||
event = error.toJsonObject().toString(),
|
||||
screenType = NaviPaymentScreenType.MINI_PAYMENT_SCREEN.name,
|
||||
status = status
|
||||
),
|
||||
metricInfo =
|
||||
getPMSMetricInfo(
|
||||
screenName =
|
||||
NaviPaymentAnalyticScreenName.MINI_PAYMENT_SCREEN.screenName,
|
||||
isNae = { false }
|
||||
)
|
||||
)
|
||||
}
|
||||
@@ -689,6 +725,11 @@ constructor(
|
||||
options = feedBackOptions.value.toList(),
|
||||
comments = feedBackComment.value
|
||||
)
|
||||
),
|
||||
metricInfo =
|
||||
getPMSMetricInfo(
|
||||
screenName = NaviPaymentAnalyticScreenName.MINI_PAYMENT_SCREEN.screenName,
|
||||
isNae = { false }
|
||||
)
|
||||
)
|
||||
}
|
||||
|
||||
@@ -30,6 +30,7 @@ import com.navi.payment.paymentscreen.model.ValidateVPAResponse
|
||||
import com.navi.payment.paymentscreen.utils.PaymentScreenUtil
|
||||
import com.navi.payment.turbocheckout.model.ValidateVpaRequest
|
||||
import com.navi.payment.utils.Constants.DELAY_FOR_HIDING_KEYBOARD
|
||||
import com.navi.payment.utils.getPMSMetricInfo
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.FlowPreview
|
||||
import kotlinx.coroutines.Job
|
||||
@@ -270,7 +271,8 @@ abstract class NPSBaseViewModel(
|
||||
coroutineScope.safeLaunch(Dispatchers.IO) {
|
||||
paymentRepository.postSdkExitSignal(
|
||||
token = paymentSdkInitParams?.token.orEmpty(),
|
||||
data = SignalPaymentData()
|
||||
data = SignalPaymentData(),
|
||||
metricInfo = getPMSMetricInfo(screenName = screenName, isNae = { false })
|
||||
)
|
||||
}
|
||||
}
|
||||
@@ -299,7 +301,9 @@ abstract class NPSBaseViewModel(
|
||||
val response =
|
||||
paymentRepository.verifyVPAId(
|
||||
token = paymentSdkInitParams?.token.orEmpty(),
|
||||
data = ValidateVpaRequest(vpa)
|
||||
data = ValidateVpaRequest(vpa),
|
||||
metricInfo =
|
||||
getPMSMetricInfo(screenName = screenName, isNae = { false })
|
||||
)
|
||||
if (response.isSuccessWithData()) {
|
||||
validateVpaResponse = response.data
|
||||
|
||||
@@ -104,6 +104,7 @@ import com.navi.payment.turbocheckout.model.UpiPayNowRequest
|
||||
import com.navi.payment.utils.Constants
|
||||
import com.navi.payment.utils.Constants.COIN_DISCOUNT_APPLY_DELAY
|
||||
import com.navi.payment.utils.getInstalledUpiApps
|
||||
import com.navi.payment.utils.getPMSMetricInfo
|
||||
import com.navi.payment.utils.roundTo
|
||||
import com.navi.payment.utils.validateUpiProcessPayload
|
||||
import com.navi.paymentclients.model.thirdparty.UpiResultResponse
|
||||
@@ -160,6 +161,10 @@ constructor(
|
||||
|
||||
val shouldFinishOnBackPress = savedStateHandle.get<Boolean>("shouldFinishOnBackPress").orFalse()
|
||||
|
||||
init {
|
||||
recordScreenLandTime(screenName)
|
||||
}
|
||||
|
||||
override fun setInitialState(): NPSBaseContract.State {
|
||||
return NPSScreenContract.NPSScreenState(
|
||||
npsBaseState =
|
||||
@@ -920,7 +925,15 @@ constructor(
|
||||
|
||||
payNowRequest?.let {
|
||||
val payNowResponse =
|
||||
paymentRepository.postPayNow(token = paymentSdkInitParams?.token, data = it)
|
||||
paymentRepository.postPayNow(
|
||||
token = paymentSdkInitParams?.token,
|
||||
data = it,
|
||||
metricInfo =
|
||||
getPMSMetricInfo(
|
||||
screenName =
|
||||
NaviPaymentAnalyticScreenName.FULL_PAYMENT_SCREEN.screenName
|
||||
)
|
||||
)
|
||||
handlePayNowResponse(payNowResponse)
|
||||
}
|
||||
}
|
||||
@@ -1121,7 +1134,10 @@ constructor(
|
||||
val response =
|
||||
paymentRepository.fetchScreenData(
|
||||
paymentSdkInitParams?.token!!,
|
||||
paymentPrefetchMethodRequest
|
||||
paymentPrefetchMethodRequest,
|
||||
getPMSMetricInfo(
|
||||
screenName = NaviPaymentAnalyticScreenName.FULL_PAYMENT_SCREEN.screenName
|
||||
)
|
||||
)
|
||||
if (response.isSuccessWithData()) {
|
||||
paymentDataProvider.updatePaymentMethodResponse(response.data)
|
||||
@@ -1152,6 +1168,12 @@ constructor(
|
||||
event = error.toJsonObject().toString(),
|
||||
screenType = NaviPaymentScreenType.FULL_PAYMENT_SCREEN.name,
|
||||
status = status
|
||||
),
|
||||
metricInfo =
|
||||
getPMSMetricInfo(
|
||||
screenName =
|
||||
NaviPaymentAnalyticScreenName.FULL_PAYMENT_SCREEN.screenName,
|
||||
isNae = { false }
|
||||
)
|
||||
)
|
||||
}
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
package com.navi.payment.nativepayment.viewmodel
|
||||
|
||||
import androidx.lifecycle.viewModelScope
|
||||
import com.navi.common.checkmate.model.MetricInfo
|
||||
import com.navi.common.model.ModuleNameV2
|
||||
import com.navi.common.network.models.ErrorMessage
|
||||
import com.navi.common.network.models.GenericErrorResponse
|
||||
@@ -94,6 +95,10 @@ abstract class NaviPaymentBaseVM(open val screenName: String) : BaseVM() {
|
||||
viewModelScope.launch(Dispatchers.Main) { eventHandler.get().postErrorEvent(errorConfig) }
|
||||
}
|
||||
|
||||
fun recordScreenLatency(screenName: String) {
|
||||
recordScreenRenderLatency(metricInfo = MetricInfo.PMSMetric<Boolean>(screen = screenName))
|
||||
}
|
||||
|
||||
companion object {
|
||||
const val UNKNOWN_ERROR_CODE = "UNKNOWN"
|
||||
}
|
||||
|
||||
@@ -24,6 +24,7 @@ import com.navi.payment.paymentscreen.model.PaymentFeedbackConfig
|
||||
import com.navi.payment.paymentscreen.model.PaymentFeedbackRequest
|
||||
import com.navi.payment.utils.Constants.LITMUS_EXPERIMENT_NAVI_PMT_NPS_MIGRATION
|
||||
import com.navi.payment.utils.Constants.PMS_LITMUS_EXPERIMENTS
|
||||
import com.navi.payment.utils.getPMSMetricInfo
|
||||
import dagger.hilt.android.lifecycle.HiltViewModel
|
||||
import javax.inject.Inject
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
@@ -97,6 +98,11 @@ constructor(
|
||||
options = feedBackOptions.toList(),
|
||||
comments = feedBackComment
|
||||
)
|
||||
),
|
||||
metricInfo =
|
||||
getPMSMetricInfo(
|
||||
screenName = NaviPaymentAnalyticScreenName.PAYMENT_SCREEN.screenName,
|
||||
isNae = { false }
|
||||
)
|
||||
)
|
||||
}
|
||||
|
||||
@@ -27,15 +27,15 @@ import com.navi.payment.nativepayment.presentation.reducer.NetBankingScreenContr
|
||||
import com.navi.payment.nativepayment.presentation.reducer.NetBankingScreenEffect
|
||||
import com.navi.payment.nativepayment.presentation.reducer.NetBankingScreenEvent
|
||||
import com.navi.payment.nativepayment.presentation.reducer.NetBankingScreenState
|
||||
import com.navi.payment.nativepayment.repository.PaymentRepository as NaviPaymentRepository
|
||||
import com.navi.payment.nativepayment.repository.PaymentRepository
|
||||
import com.navi.payment.network.util.PaymentsSdkRetrofit
|
||||
import com.navi.payment.paymentscreen.model.ExternalPayNowResponse
|
||||
import com.navi.payment.paymentscreen.model.PayNowResponse
|
||||
import com.navi.payment.paymentscreen.utils.PaymentScreenUtil
|
||||
import com.navi.payment.repository.PaymentRepository
|
||||
import com.navi.payment.turbocheckout.model.NetBankingPayNowRequest
|
||||
import com.navi.payment.turbocheckout.model.SelectedMethodDetails
|
||||
import com.navi.payment.utils.Constants.DELAY_FOR_HIDING_KEYBOARD
|
||||
import com.navi.payment.utils.getPMSMetricInfo
|
||||
import dagger.hilt.android.lifecycle.HiltViewModel
|
||||
import javax.inject.Inject
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
@@ -57,9 +57,8 @@ import org.json.JSONObject
|
||||
class NetBankingViewModel
|
||||
@Inject
|
||||
constructor(
|
||||
private val paymentRepository: PaymentRepository,
|
||||
private val paymentDataProvider: PaymentDataProvider,
|
||||
private val naviPaymentRepository: NaviPaymentRepository,
|
||||
private val paymentRepository: PaymentRepository,
|
||||
@PaymentsSdkRetrofit private val deserializer: Gson,
|
||||
) :
|
||||
NaviPaymentBaseVM(NaviPaymentAnalyticScreenName.NET_BANKING_SCREEN.screenName),
|
||||
@@ -84,6 +83,7 @@ constructor(
|
||||
private var sortedAllBanksList: List<BankDetails>? = null
|
||||
|
||||
init {
|
||||
recordScreenLandTime(screenName)
|
||||
viewModelScope.safeLaunch(Dispatchers.IO) {
|
||||
paymentSdkInitParams = getSDKInitParams()
|
||||
baseAnalyticsParams.apply {
|
||||
@@ -125,7 +125,13 @@ constructor(
|
||||
private fun updateFetchBankResponse() {
|
||||
viewModelScope.safeLaunch {
|
||||
val response =
|
||||
paymentRepository.fetchBanksCompose(paymentSdkInitParams?.token.orEmpty())
|
||||
paymentRepository.fetchBanks(
|
||||
paymentSdkInitParams?.token.orEmpty(),
|
||||
metricInfo =
|
||||
getPMSMetricInfo(
|
||||
screenName = NaviPaymentAnalyticScreenName.NET_BANKING_SCREEN.screenName
|
||||
)
|
||||
)
|
||||
if (response.isSuccessWithData()) {
|
||||
paymentDataProvider.updateFetchBanksResponse(response.data)
|
||||
} else {
|
||||
@@ -223,9 +229,14 @@ constructor(
|
||||
}
|
||||
|
||||
private suspend fun handleFeedbackSubmit() {
|
||||
naviPaymentRepository.postSdkExitSignal(
|
||||
paymentRepository.postSdkExitSignal(
|
||||
token = paymentSdkInitParams?.token.orEmpty(),
|
||||
data = SignalPaymentData()
|
||||
data = SignalPaymentData(),
|
||||
metricInfo =
|
||||
getPMSMetricInfo(
|
||||
screenName = NaviPaymentAnalyticScreenName.NET_BANKING_SCREEN.screenName,
|
||||
isNae = { false }
|
||||
)
|
||||
)
|
||||
_effect.emit(NetBankingScreenEffect.PostResultAndFinish)
|
||||
}
|
||||
@@ -276,7 +287,14 @@ constructor(
|
||||
)
|
||||
|
||||
val response =
|
||||
paymentRepository.postPayNow(token = paymentSdkInitParams?.token, data = data)
|
||||
paymentRepository.postPayNow(
|
||||
token = paymentSdkInitParams?.token,
|
||||
data = data,
|
||||
metricInfo =
|
||||
getPMSMetricInfo(
|
||||
screenName = NaviPaymentAnalyticScreenName.NET_BANKING_SCREEN.screenName
|
||||
)
|
||||
)
|
||||
handlePayNowResponse(response)
|
||||
}
|
||||
|
||||
|
||||
@@ -19,6 +19,7 @@ import com.navi.payment.nativepayment.presentation.reducer.SdkIntegrationScreenE
|
||||
import com.navi.payment.nativepayment.presentation.reducer.SdkIntegrationScreenState
|
||||
import com.navi.payment.nativepayment.repository.PaymentRepository
|
||||
import com.navi.payment.paymentscreen.model.PaymentErrorData
|
||||
import com.navi.payment.utils.getPMSMetricInfo
|
||||
import dagger.hilt.android.lifecycle.HiltViewModel
|
||||
import javax.inject.Inject
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
@@ -122,7 +123,14 @@ constructor(
|
||||
|
||||
fun postSdkExitSignal(data: SignalPaymentData) {
|
||||
viewModelScope.launch(Dispatchers.IO) {
|
||||
paymentRepository.postSdkExitSignal(paymentSdkInitParams?.token.orEmpty(), data)
|
||||
paymentRepository.postSdkExitSignal(
|
||||
paymentSdkInitParams?.token.orEmpty(),
|
||||
data,
|
||||
getPMSMetricInfo(
|
||||
screenName = NaviPaymentAnalyticScreenName.SDK_INTEGRATION_SCREEN.screenName,
|
||||
isNae = { false }
|
||||
)
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -12,6 +12,7 @@ import androidx.lifecycle.SavedStateHandle
|
||||
import androidx.lifecycle.viewModelScope
|
||||
import com.navi.base.utils.MILLISECONDS_PER_SECOND
|
||||
import com.navi.base.utils.isNotNull
|
||||
import com.navi.base.utils.isNotNullAndNotEmpty
|
||||
import com.navi.common.firebasedb.FirebaseStatusType
|
||||
import com.navi.common.model.RequestConfig
|
||||
import com.navi.common.network.models.isSuccessWithData
|
||||
@@ -39,6 +40,7 @@ import com.navi.payment.paymentscreen.model.TransactionPollingApiState
|
||||
import com.navi.payment.paymentscreen.model.TransactionStatusRequest
|
||||
import com.navi.payment.paymentscreen.model.TransactionStatusResponseData
|
||||
import com.navi.payment.utils.PaymentSource
|
||||
import com.navi.payment.utils.getPMSMetricInfo
|
||||
import com.navi.uitron.utils.orVal
|
||||
import dagger.hilt.android.lifecycle.HiltViewModel
|
||||
import javax.inject.Inject
|
||||
@@ -94,7 +96,23 @@ constructor(
|
||||
|
||||
private fun pollTransactionStatus(pollingCount: Int = 0) {
|
||||
viewModelScope.launch {
|
||||
val transactionStatusData = paymentRepository.fetchTransactionStatus(token, request)
|
||||
val transactionStatusData =
|
||||
paymentRepository.fetchTransactionStatus(
|
||||
token = token,
|
||||
request = request,
|
||||
metricInfo =
|
||||
getPMSMetricInfo(
|
||||
screenName =
|
||||
NaviPaymentAnalyticScreenName.TRANSACTION_POLLING_SCREEN.screenName,
|
||||
isNae = {
|
||||
when {
|
||||
it.errors.isNotNullAndNotEmpty() || it.data == null -> true
|
||||
it.error.isNotNull() -> false
|
||||
else -> false
|
||||
}
|
||||
}
|
||||
)
|
||||
)
|
||||
if (transactionStatusData.isSuccessWithData()) {
|
||||
val data = transactionStatusData.data
|
||||
if (nextPollRequired(data, pollingCount, pollingConfiguration)) {
|
||||
@@ -175,7 +193,16 @@ constructor(
|
||||
|
||||
fun postSdkExitSignal() {
|
||||
coroutineScope.safeLaunch(Dispatchers.IO) {
|
||||
paymentRepository.postSdkExitSignal(token = token, data = SignalPaymentData())
|
||||
paymentRepository.postSdkExitSignal(
|
||||
token = token,
|
||||
data = SignalPaymentData(),
|
||||
metricInfo =
|
||||
getPMSMetricInfo(
|
||||
screenName =
|
||||
NaviPaymentAnalyticScreenName.TRANSACTION_POLLING_SCREEN.screenName,
|
||||
isNae = { false }
|
||||
)
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -64,6 +64,7 @@ import com.navi.payment.turbocheckout.model.SelectedMethodDetails
|
||||
import com.navi.payment.turbocheckout.model.UpiCollectPayNowRequest
|
||||
import com.navi.payment.turbocheckout.model.UpiIntentPayNowRequest
|
||||
import com.navi.payment.turbocheckout.model.UpiPayNowRequest
|
||||
import com.navi.payment.utils.getPMSMetricInfo
|
||||
import com.navi.payment.utils.roundTo
|
||||
import dagger.hilt.android.lifecycle.HiltViewModel
|
||||
import javax.inject.Inject
|
||||
@@ -106,11 +107,15 @@ constructor(
|
||||
override val effect: SharedFlow<NPSBaseContract.Effect>
|
||||
get() = _effect.asSharedFlow()
|
||||
|
||||
val upiScreenState: UpiIntentScreenContract.UpiScreenState
|
||||
private val upiScreenState: UpiIntentScreenContract.UpiScreenState
|
||||
get() = state.value as UpiIntentScreenContract.UpiScreenState
|
||||
|
||||
private val naviPaymentAnalytics = NaviPaymentAnalytics.INSTANCE.UpiIntentScreen()
|
||||
|
||||
init {
|
||||
recordScreenLandTime(screenName)
|
||||
}
|
||||
|
||||
override fun setInitialState() =
|
||||
UpiIntentScreenContract.UpiScreenState(
|
||||
npsBaseState =
|
||||
@@ -283,7 +288,11 @@ constructor(
|
||||
val payNowResponse =
|
||||
paymentRepository.postPayNow(
|
||||
token = paymentSdkInitParams?.token,
|
||||
data = payNowRequest
|
||||
data = payNowRequest,
|
||||
metricInfo =
|
||||
getPMSMetricInfo(
|
||||
screenName = NaviPaymentAnalyticScreenName.UPI_INTENT_SCREEN.screenName
|
||||
)
|
||||
)
|
||||
handlePayNowResponse(payNowResponse)
|
||||
}
|
||||
@@ -412,6 +421,11 @@ constructor(
|
||||
event = error.toJsonObject().toString(),
|
||||
screenType = NaviPaymentScreenType.FULL_PAYMENT_SCREEN.name,
|
||||
status = status
|
||||
),
|
||||
metricInfo =
|
||||
getPMSMetricInfo(
|
||||
screenName = NaviPaymentAnalyticScreenName.UPI_INTENT_SCREEN.screenName,
|
||||
isNae = { false }
|
||||
)
|
||||
)
|
||||
}
|
||||
|
||||
@@ -16,9 +16,10 @@ import com.google.gson.Gson
|
||||
import com.navi.base.utils.ResourceProvider
|
||||
import com.navi.base.utils.isNotNull
|
||||
import com.navi.base.utils.isNotNullAndNotEmpty
|
||||
import com.navi.base.utils.isNull
|
||||
import com.navi.base.utils.orFalse
|
||||
import com.navi.base.utils.orZero
|
||||
import com.navi.common.checkmate.core.CheckMateManager
|
||||
import com.navi.common.checkmate.model.MetricInfo
|
||||
import com.navi.common.network.models.isSuccessWithData
|
||||
import com.navi.common.upi.UpiDataType
|
||||
import com.navi.pay.common.setup.NaviPayManager
|
||||
@@ -27,6 +28,7 @@ import com.navi.pay.management.common.sendmoney.model.view.BankAccountsState
|
||||
import com.navi.pay.onboarding.account.detail.model.view.LinkedAccountEntity
|
||||
import com.navi.pay.utils.getDisplayableAmount
|
||||
import com.navi.pay.utils.isAccountIdOfTypeUpiLite
|
||||
import com.navi.payment.R
|
||||
import com.navi.payment.model.initiatesdk.PaymentPrefetchDetail
|
||||
import com.navi.payment.model.initiatesdk.PaymentPrefetchMethodRequest
|
||||
import com.navi.payment.nativepayment.NaviPaymentAnalyticScreenName
|
||||
@@ -50,15 +52,18 @@ import com.navi.payment.nativepayment.repository.PaymentRepository
|
||||
import com.navi.payment.nativepayment.utils.getPayloadBasedOnType
|
||||
import com.navi.payment.nativepayment.utils.getPreferredSelectedAccount
|
||||
import com.navi.payment.nativepayment.utils.mapToLinkedAccountEntity
|
||||
import com.navi.payment.nativepayment.utils.toGenericErrorResponse
|
||||
import com.navi.payment.nativepayment.utils.updateAccountEligibilityStatus
|
||||
import com.navi.payment.nativepayment.utils.updateUpiAccountsRanking
|
||||
import com.navi.payment.network.util.PaymentsSdkRetrofit
|
||||
import com.navi.payment.paymentscreen.model.MPSErrorReason
|
||||
import com.navi.payment.paymentscreen.model.PaymentErrorData
|
||||
import com.navi.payment.turbocheckout.model.PayAmountRequest
|
||||
import com.navi.payment.turbocheckout.ui.PayNowState
|
||||
import com.navi.payment.utils.Constants
|
||||
import com.navi.payment.utils.Constants.EMPTY_TOKEN_ERROR
|
||||
import com.navi.payment.utils.getErrorData
|
||||
import com.navi.payment.utils.getPMSMetricInfo
|
||||
import com.navi.paymentclients.model.thirdparty.UpiResultResponse
|
||||
import dagger.hilt.android.lifecycle.HiltViewModel
|
||||
import javax.inject.Inject
|
||||
@@ -136,7 +141,7 @@ constructor(
|
||||
|
||||
private fun initiate() {
|
||||
var showBottomSheet = false
|
||||
var screenState: WebPaymentScreenState
|
||||
val screenState: WebPaymentScreenState
|
||||
when (webPayAction) {
|
||||
WebPaymentAction.WEB_VIEW_ONBOARDING -> {
|
||||
screenState = WebPaymentScreenState.Init
|
||||
@@ -203,7 +208,18 @@ constructor(
|
||||
token = (webPaymentData as? WebPaymentData.WebSendMoneyData)?.token.orEmpty()
|
||||
if (token.isNotNullAndNotEmpty()) {
|
||||
val response =
|
||||
paymentRepository.fetchScreenData(token, paymentPrefetchMethodRequest)
|
||||
paymentRepository.fetchScreenData(
|
||||
token,
|
||||
paymentPrefetchMethodRequest,
|
||||
getPMSMetricInfo(
|
||||
screenName =
|
||||
NaviPaymentAnalyticScreenName.WEB_PAYMENT_SCREEN.screenName,
|
||||
isNae = { response ->
|
||||
!(response.isSuccessWithData() &&
|
||||
(response.data as? S2sPaymentMethodResponse).isNotNull())
|
||||
}
|
||||
)
|
||||
)
|
||||
if (
|
||||
response.isSuccessWithData() &&
|
||||
(response.data as? S2sPaymentMethodResponse).isNotNull()
|
||||
@@ -214,7 +230,7 @@ constructor(
|
||||
showBottomSheet = true,
|
||||
bottomSheetUIState =
|
||||
WebPaymentScreenState.Error(
|
||||
PaymentErrorData(error = response.errors?.firstOrNull())
|
||||
PaymentErrorData(error = response.toGenericErrorResponse())
|
||||
),
|
||||
bottomSheetStateChange = true
|
||||
)
|
||||
@@ -222,6 +238,12 @@ constructor(
|
||||
isDismissAllowed = true
|
||||
}
|
||||
} else {
|
||||
CheckMateManager.logAppErrorEvent(
|
||||
metricInfo = MetricInfo.PMSMetric<Any>(screen = screenName),
|
||||
errorCode = MPSErrorReason.TokenNotFoundError.toString(),
|
||||
errorTitle = resourceProvider.getString(R.string.something_went_wrong),
|
||||
errorDes = resourceProvider.getString(R.string.technical_issue),
|
||||
)
|
||||
updateBottomSheetUIState(
|
||||
showBottomSheet = true,
|
||||
bottomSheetUIState =
|
||||
@@ -347,9 +369,12 @@ constructor(
|
||||
payerBankAccountId = accountId,
|
||||
accountType = linkedAccountType
|
||||
),
|
||||
),
|
||||
getPMSMetricInfo(
|
||||
screenName = NaviPaymentAnalyticScreenName.WEB_PAYMENT_SCREEN.screenName
|
||||
)
|
||||
)
|
||||
if (response.error.isNull() && response.errors.isNullOrEmpty()) {
|
||||
if (response.isSuccessWithData()) {
|
||||
paymentDataProvider.add(
|
||||
TRANSACTION_REFERENCE_ID,
|
||||
response.data?.transactionReferenceId.orEmpty()
|
||||
@@ -364,7 +389,7 @@ constructor(
|
||||
updateBottomSheetUIState(
|
||||
true,
|
||||
WebPaymentScreenState.Error(
|
||||
PaymentErrorData(error = response.errors?.firstOrNull())
|
||||
PaymentErrorData(error = response.toGenericErrorResponse())
|
||||
)
|
||||
)
|
||||
}
|
||||
|
||||
@@ -16,7 +16,6 @@ import com.navi.payment.model.initiatesdk.PaymentPrefetchMethodRequest
|
||||
import com.navi.payment.model.paymentmethod.GenericPaymentMethodResponse
|
||||
import com.navi.payment.model.paymentmethod.PaymentMethodResponse
|
||||
import com.navi.payment.model.paymentresult.PaymentPrefetchMethodDetailsResponse
|
||||
import com.navi.payment.nativepayment.model.NetBankingPaymentInstrument
|
||||
import com.navi.payment.network.retrofit.RetrofitService
|
||||
import com.navi.payment.network.util.PaymentsSdkRetrofit
|
||||
import com.navi.payment.paymentscreen.model.PayNowResponse
|
||||
@@ -88,10 +87,6 @@ constructor(@PaymentsSdkRetrofit private val retrofitService: RetrofitService) :
|
||||
return apiResponseCallback(retrofitService.fetchAllBanks(token, PAYMENT_GATEWAY_MODULE))
|
||||
}
|
||||
|
||||
suspend fun fetchBanksCompose(token: String): RepoResult<NetBankingPaymentInstrument> {
|
||||
return apiResponseCallback(retrofitService.fetchBanksCompose(token, PAYMENT_GATEWAY_MODULE))
|
||||
}
|
||||
|
||||
suspend fun fetchBankByName(
|
||||
token: String,
|
||||
bankName: String
|
||||
|
||||
@@ -13,7 +13,10 @@ import com.navi.base.model.CtaData
|
||||
import com.navi.base.utils.BaseUtils
|
||||
import com.navi.base.utils.orFalse
|
||||
import com.navi.base.utils.orZero
|
||||
import com.navi.common.checkmate.model.MetricInfo
|
||||
import com.navi.common.network.models.GenericErrorResponse
|
||||
import com.navi.common.network.models.RepoResult
|
||||
import com.navi.common.network.models.isSuccessWithData
|
||||
import com.navi.naviwidgets.models.response.Action
|
||||
import com.navi.payment.R
|
||||
import com.navi.payment.model.initiatesdk.PaymentPrefetchDetail
|
||||
@@ -145,3 +148,10 @@ fun getInstalledUpiApps(): PaymentPrefetchDetail {
|
||||
)
|
||||
)
|
||||
}
|
||||
|
||||
fun <T> getPMSMetricInfo(
|
||||
screenName: String,
|
||||
isNae: (RepoResult<T>) -> Boolean = { !it.isSuccessWithData() }
|
||||
): MetricInfo<RepoResult<T>> {
|
||||
return MetricInfo.PMSMetric(screenName, isNae = isNae)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user