diff --git a/android/app/src/main/java/com/naviapp/analytics/deeplink/DeeplinkManager.kt b/android/app/src/main/java/com/naviapp/analytics/deeplink/DeeplinkManager.kt index 0b8b9c96d3..5c42f230f0 100644 --- a/android/app/src/main/java/com/naviapp/analytics/deeplink/DeeplinkManager.kt +++ b/android/app/src/main/java/com/naviapp/analytics/deeplink/DeeplinkManager.kt @@ -70,6 +70,7 @@ class DeeplinkManager( private const val IS_UPI_DYNAMIC_DEEP_LINK = "isUpiDynamicDeeplink" private const val NAVI_PAY_HOME_PAGE_URL = "naviPayHomePageUrl" const val DEEPLINK_TYPE = "deeplinkType" + const val DEEPLINK_MANAGER = "DeeplinkManager" } fun handleDeeplinkData( diff --git a/android/app/src/main/java/com/naviapp/analytics/deeplink/DeeplinkRepository.kt b/android/app/src/main/java/com/naviapp/analytics/deeplink/DeeplinkRepository.kt index edc4903a63..f4b662b6a8 100644 --- a/android/app/src/main/java/com/naviapp/analytics/deeplink/DeeplinkRepository.kt +++ b/android/app/src/main/java/com/naviapp/analytics/deeplink/DeeplinkRepository.kt @@ -7,6 +7,7 @@ package com.naviapp.analytics.deeplink +import com.navi.common.checkmate.model.MetricInfo import com.navi.common.model.ModuleName import com.naviapp.models.request.OnboardingRequest import com.naviapp.network.retrofit.ResponseCallback @@ -19,9 +20,21 @@ class DeeplinkRepository : ResponseCallback() { suspend fun sendReferralData(referralAuditingRequestData: OnboardingRequest) = apiResponseCallback( - superAppRetrofitService().getOnboardingAction(referralAuditingRequestData) + response = superAppRetrofitService().getOnboardingAction(referralAuditingRequestData), + metricInfo = + MetricInfo.CommonMetric( + screen = DeeplinkManager.DEEPLINK_MANAGER, + isNae = { false } + ) ) suspend fun fetchCta(deeplinkRequest: OnboardingRequest) = - apiResponseCallback(superAppRetrofitService().getOnboardingAction(deeplinkRequest)) + apiResponseCallback( + response = superAppRetrofitService().getOnboardingAction(deeplinkRequest), + metricInfo = + MetricInfo.CommonMetric( + screen = DeeplinkManager.DEEPLINK_MANAGER, + isNae = { false } + ) + ) } diff --git a/android/app/src/main/java/com/naviapp/home/compose/activity/HomePageActivity.kt b/android/app/src/main/java/com/naviapp/home/compose/activity/HomePageActivity.kt index 5a48b28fce..00c5f96b45 100644 --- a/android/app/src/main/java/com/naviapp/home/compose/activity/HomePageActivity.kt +++ b/android/app/src/main/java/com/naviapp/home/compose/activity/HomePageActivity.kt @@ -1392,7 +1392,10 @@ class HomePageActivity : paymentVM.getPaymentDetail(requestId, amount, repaymentType) } PAYMENT_STATUS -> { - paymentVM.fetchPgRepyamentStatusDetail(requestId) + paymentVM.fetchPgRepyamentStatusDetail( + requestId = requestId, + screenName = screenName + ) } } } diff --git a/android/app/src/main/java/com/naviapp/payment/fragments/PaymentBaseFragment.kt b/android/app/src/main/java/com/naviapp/payment/fragments/PaymentBaseFragment.kt index 86b8441fcf..d2b9d9f077 100644 --- a/android/app/src/main/java/com/naviapp/payment/fragments/PaymentBaseFragment.kt +++ b/android/app/src/main/java/com/naviapp/payment/fragments/PaymentBaseFragment.kt @@ -643,7 +643,10 @@ abstract class PaymentBaseFragment : BaseFragment(), PaymentClickListener, Payme paymentVM.getPaymentDetail(requestId, amount, repaymentType) } PAYMENT_STATUS -> { - paymentVM.fetchPgRepyamentStatusDetail(requestId) + paymentVM.fetchPgRepyamentStatusDetail( + requestId = requestId, + screenName = screenName + ) } } } diff --git a/android/app/src/main/java/com/naviapp/payment/repositories/PaymentRepository.kt b/android/app/src/main/java/com/naviapp/payment/repositories/PaymentRepository.kt index 2fa302d5b9..003354a338 100644 --- a/android/app/src/main/java/com/naviapp/payment/repositories/PaymentRepository.kt +++ b/android/app/src/main/java/com/naviapp/payment/repositories/PaymentRepository.kt @@ -7,6 +7,7 @@ package com.naviapp.payment.repositories +import com.navi.base.utils.isNull import com.navi.common.checkmate.model.MetricInfo import com.navi.common.model.AsyncRequestData import com.navi.common.model.InitiateRescheduleLoanAgreementGenerationRequest @@ -46,8 +47,15 @@ class PaymentRepository @Inject constructor() : ResponseCallback() { ): RepoResult = apiResponseCallback(retrofitService().postPgRepaymentStatus(loanAccountNumber, data)) - suspend fun fetchAsyncRequestData(requestId: String): RepoResult = - apiResponseCallback(retrofitService().fetchAsyncRequestWithError(requestId)) + suspend fun fetchAsyncRequestData( + requestId: String, + screenName: String + ): RepoResult = + apiResponseCallback( + retrofitService().fetchAsyncRequestWithError(requestId), + metricInfo = + MetricInfo.PMSMetric(screen = screenName, isNae = { it.error.isNull().not() }) + ) suspend fun fetchSyncPaymentStatus(requestId: String): RepoResult = apiResponseCallback(retrofitService().fetchSyncPaymentStatus(requestId)) diff --git a/android/app/src/main/java/com/naviapp/payment/viewmodel/PaymentVM.kt b/android/app/src/main/java/com/naviapp/payment/viewmodel/PaymentVM.kt index 6b99b1e0c2..6718b61186 100644 --- a/android/app/src/main/java/com/naviapp/payment/viewmodel/PaymentVM.kt +++ b/android/app/src/main/java/com/naviapp/payment/viewmodel/PaymentVM.kt @@ -186,9 +186,9 @@ class PaymentVM : BaseVM() { } } - fun fetchPgRepyamentStatusDetail(requestId: String) { + fun fetchPgRepyamentStatusDetail(requestId: String, screenName: String) { coroutineScope.launch { - val response = repository.fetchAsyncRequestData(requestId) + val response = repository.fetchAsyncRequestData(requestId, screenName) if (response.error == null) { _paymentStatusData.value = response.data?.status } else { diff --git a/android/navi-chat/src/main/java/com/navi/chat/repositories/NaviChatRepository.kt b/android/navi-chat/src/main/java/com/navi/chat/repositories/NaviChatRepository.kt index 1108933891..1f0055e272 100644 --- a/android/navi-chat/src/main/java/com/navi/chat/repositories/NaviChatRepository.kt +++ b/android/navi-chat/src/main/java/com/navi/chat/repositories/NaviChatRepository.kt @@ -10,7 +10,9 @@ package com.navi.chat.repositories import com.navi.chat.models.request.NaviChatInitiateRequest import com.navi.chat.models.request.NaviMarkConversationsReadRequest import com.navi.chat.network.NaviChatApiInterface +import com.navi.chat.ui.fragments.NaviChatFragment import com.navi.common.awsupload.AwsRepositoryInterface +import com.navi.common.checkmate.model.MetricInfo import com.navi.common.network.retrofit.ResponseCallback import java.util.UUID import javax.inject.Inject @@ -28,30 +30,51 @@ class NaviChatRepository @Inject constructor(private val chatApiInterface: NaviC chatApiInterface.initiateChat( naviChatInitiateRequest = naviChatInitiateRequest, page = pageNo - ) + ), + metricInfo = MetricInfo.ChatMetric(screen = NaviChatFragment.TAG, isNae = { false }) ) suspend fun fetchChatConversations(conversationId: String, pageNo: Int) = apiResponseCallback( - chatApiInterface.fetchChatConversations(conversationId = conversationId, page = pageNo) + chatApiInterface.fetchChatConversations(conversationId = conversationId, page = pageNo), + metricInfo = MetricInfo.ChatMetric(screen = NaviChatFragment.TAG, isNae = { false }) ) suspend fun getHelpCenterDetails() = - apiResponseCallback(chatApiInterface.getHelpCenterDetails()) + apiResponseCallback( + chatApiInterface.getHelpCenterDetails(), + metricInfo = MetricInfo.ChatMetric(screen = NaviChatFragment.TAG, isNae = { false }) + ) suspend fun getSupportScreenDetails(sourceScreenName: String) = - apiResponseCallback(chatApiInterface.getSupportScreenDetails(sourceScreenName)) + apiResponseCallback( + chatApiInterface.getSupportScreenDetails(sourceScreenName), + metricInfo = MetricInfo.ChatMetric(screen = NaviChatFragment.TAG, isNae = { false }) + ) - suspend fun getConfig() = apiResponseCallback(chatApiInterface.getConfig()) + suspend fun getConfig() = + apiResponseCallback( + chatApiInterface.getConfig(), + metricInfo = MetricInfo.ChatMetric(screen = NaviChatFragment.TAG, isNae = { false }) + ) suspend fun generateUploadAWSPreSignedUrl(queryMap: HashMap) = - apiResponseCallback(chatApiInterface.postUploadAWSPreSignedUrl(queryMap)) + apiResponseCallback( + chatApiInterface.postUploadAWSPreSignedUrl(queryMap), + metricInfo = MetricInfo.ChatMetric(screen = NaviChatFragment.TAG, isNae = { false }) + ) suspend fun checkIfActivityRedirectionIsValid(queryMap: HashMap) = - apiResponseCallback(chatApiInterface.checkIfActivityRedirectionIsValid(queryMap)) + apiResponseCallback( + chatApiInterface.checkIfActivityRedirectionIsValid(queryMap), + metricInfo = MetricInfo.ChatMetric(screen = NaviChatFragment.TAG, isNae = { false }) + ) override suspend fun generateDownloadAWSPreSignedUrl(queryMap: HashMap) = - apiResponseCallback(chatApiInterface.postDownloadAWSPreSignedUrl(queryMap)) + apiResponseCallback( + chatApiInterface.postDownloadAWSPreSignedUrl(queryMap), + metricInfo = MetricInfo.ChatMetric(screen = NaviChatFragment.TAG, isNae = { false }) + ) suspend fun uploadFile( @Url url: String, @@ -59,7 +82,8 @@ class NaviChatRepository @Inject constructor(private val chatApiInterface: NaviC @Part file: MultipartBody.Part ) = apiResponseCallback( - chatApiInterface.submitAWSData(url = url, awsPartMap = awsPartMap, file = file) + chatApiInterface.submitAWSData(url = url, awsPartMap = awsPartMap, file = file), + metricInfo = MetricInfo.ChatMetric(screen = NaviChatFragment.TAG, isNae = { false }) ) suspend fun updateReceipts( @@ -79,11 +103,13 @@ class NaviChatRepository @Inject constructor(private val chatApiInterface: NaviC readTimestamp = readTimestamp, deliveredTimestamp = deliveredTimestamp ) - ) + ), + metricInfo = MetricInfo.ChatMetric(screen = NaviChatFragment.TAG, isNae = { false }) ) suspend fun fetchTicketDetails(pageNo: Int, pageSize: Int) = apiResponseCallback( - chatApiInterface.fetchTicketDetails(pageNo = pageNo, pageSize = pageSize) + chatApiInterface.fetchTicketDetails(pageNo = pageNo, pageSize = pageSize), + metricInfo = MetricInfo.ChatMetric(screen = NaviChatFragment.TAG, isNae = { false }) ) } diff --git a/android/navi-common/src/main/java/com/navi/common/repo/PermissionSubmitRepository.kt b/android/navi-common/src/main/java/com/navi/common/repo/PermissionSubmitRepository.kt index 4901951242..822de98da3 100644 --- a/android/navi-common/src/main/java/com/navi/common/repo/PermissionSubmitRepository.kt +++ b/android/navi-common/src/main/java/com/navi/common/repo/PermissionSubmitRepository.kt @@ -8,6 +8,7 @@ package com.navi.common.repo import android.content.Context +import com.navi.common.checkmate.model.MetricInfo import com.navi.common.model.PermissionVerticalType import com.navi.common.model.SubmitPermissionRequestData import com.navi.common.model.SubmitPermissionResponse @@ -34,7 +35,8 @@ constructor( verticalType = verticalType, permissionList = getSubmitPermissionList(context) ) - ) + ), + metricInfo = MetricInfo.CommonMetric(screen = verticalType, isNae = { false }) ) } }