NTP-48441 | Added all QR uri in the events to analysis the errors (#15413)

This commit is contained in:
shankar yadav
2025-03-18 13:29:30 +05:30
committed by GitHub
parent 803d60d54c
commit d76b64c674
4 changed files with 27 additions and 4 deletions

View File

@@ -1398,12 +1398,19 @@ class NaviPayAnalytics private constructor() {
)
}
fun onNonUPIQRScanned(qrContent: String, naviPaySessionAttributes: Map<String, String>) {
fun onNonUPIQRScanned(
qrContent: String,
naviPaySessionAttributes: Map<String, String>,
qrCount: Int,
qrUri: String,
) {
NaviTrackEvent.trackEventOnClickStream(
eventName = "NaviPay_QrScanner_NonUPIQRScanned",
eventValues =
mapOf(
"qrContent" to qrContent,
"qrCount" to qrCount.toString(),
"qrUri" to qrUri,
"naviPaySessionId" to
naviPaySessionAttributes["naviPaySessionId"].orEmpty(),
"naviPayCustomerStatusMap" to

View File

@@ -164,6 +164,7 @@ fun QrScannerScreen(
qrScannerViewModel.processQrContent(
qrContent = barcodes.first().rawValue.toString(),
sendQrFromGallery = true,
barcodes = barcodes,
)
naviPayAnalytics.onQRReceived(
isFromGallery = true,
@@ -585,7 +586,7 @@ fun NavigationIconWithOtherAppsView(
private fun QrCamera(
isTorchEnabled: LiveData<Boolean>,
naviPayActivity: NaviPayActivity,
onScanSuccess: (String) -> Unit,
onScanSuccess: (String, Boolean, List<Barcode>) -> Unit,
naviPayAnalytics: NaviPayAnalytics.NaviPayQrScanner,
naviPaySessionAttributes: Map<String, String>,
) {
@@ -664,7 +665,9 @@ private fun QrCamera(
!barcodeResults.first().rawValue.isNullOrEmpty()
) {
onScanSuccess(
barcodeResults.first().rawValue.toString()
barcodeResults.first().rawValue.toString(),
false,
barcodeResults,
)
naviPayAnalytics.onQRReceived(
isFromGallery = false,

View File

@@ -8,6 +8,7 @@
package com.navi.pay.management.moneytransfer.scanpay.util
import android.net.Uri
import com.google.mlkit.vision.barcode.common.Barcode
import com.navi.base.utils.COLON
import com.navi.pay.analytics.NaviPayAnalytics
import com.navi.pay.management.common.sendmoney.model.network.SplitDetailsItem
@@ -203,3 +204,7 @@ fun getQueryParamValueOrDefault(value: String?, default: String): String {
fun prepareUpiUri(name: String, vpa: String): String {
return "upi://pay?pa=$vpa&pn=$name"
}
fun extractUriFromQR(barcodes: List<Barcode>): String {
return barcodes.joinToString(", ") { "${it.rawValue}" }
}

View File

@@ -12,6 +12,7 @@ import androidx.lifecycle.LiveData
import androidx.lifecycle.MutableLiveData
import androidx.lifecycle.viewModelScope
import com.google.gson.reflect.TypeToken
import com.google.mlkit.vision.barcode.common.Barcode
import com.navi.base.utils.ResourceProvider
import com.navi.common.di.CoroutineDispatcherProvider
import com.navi.common.firebaseremoteconfig.FirebaseRemoteConfigHelper
@@ -36,6 +37,7 @@ import com.navi.pay.management.moneytransfer.scanpay.model.view.QrScanState
import com.navi.pay.management.moneytransfer.scanpay.model.view.QrScannerBottomSheetStateHolder
import com.navi.pay.management.moneytransfer.scanpay.model.view.UpiUriResult
import com.navi.pay.management.moneytransfer.scanpay.util.UpiUriParser
import com.navi.pay.management.moneytransfer.scanpay.util.extractUriFromQR
import com.navi.pay.utils.DEFAULT_CONFIG
import com.navi.pay.utils.LITMUS_EXPERIMENT_NAVIPAY_OFFER_EXPERIENCE
import com.navi.pay.utils.NAVI_PAY_WIDGET_CLICKED_KEY
@@ -237,7 +239,11 @@ constructor(
bottomSheetStateHolder.value.bottomSheetUIState is QrScannerBottomSheetUIState.OfferList &&
bottomSheetStateHolder.value.showBottomSheet
fun processQrContent(qrContent: String, sendQrFromGallery: Boolean = false) {
fun processQrContent(
qrContent: String,
sendQrFromGallery: Boolean = false,
barcodes: List<Barcode>,
) {
if (isQrCodeProcessing.get() || isOffersBottomSheetVisible()) {
return
}
@@ -288,6 +294,8 @@ constructor(
naviPayAnalytics.onNonUPIQRScanned(
qrContent = qrContent,
naviPaySessionAttributes = getNaviPaySessionAttributes(),
qrCount = barcodes.size,
qrUri = extractUriFromQR(barcodes),
)
}
}