TP-12345 | Vkyc Multiple View Issue Fix (#10551)

Co-authored-by: Shivam Goyal <shivam.goyal@navi.com>
This commit is contained in:
Sanjay P
2024-04-19 00:41:21 +05:30
committed by GitHub
parent 026c6a93de
commit 49796619dd
6 changed files with 54 additions and 3 deletions

View File

@@ -29,6 +29,7 @@ import com.navi.ap.utils.constants.FAILURE_CAP
import com.navi.ap.utils.constants.HYPERVERGE_SELFIE_ERROR
import com.navi.ap.utils.constants.HYPERVERGE_SELFIE_SUCCESS
import com.navi.ap.utils.constants.HYPERVERGE_START_ERROR
import com.navi.ap.utils.constants.IMAGE_URI
import com.navi.ap.utils.constants.RESULT
import com.navi.ap.utils.logApEvent
import com.navi.base.sharedpref.PreferenceManager
@@ -76,7 +77,7 @@ class PLHyperVergeSelfieInitStrategy : IHypervergeSelfieCapture() {
uuid: String?,
listener: HyperVergeSelfieCaptureListener?
) {
logApEvent(eventName = HYPERVERGE_SELFIE_SUCCESS)
logApEvent(Pair(IMAGE_URI, data.imageURI), eventName = HYPERVERGE_SELFIE_SUCCESS)
listener?.onSelfieSuccess(
hyperVergeSelfieUploadRequestData =
createSelfieUploadRequestData(

View File

@@ -0,0 +1,12 @@
/*
*
* * Copyright © 2024 by Navi Technologies Limited
* * All rights reserved. Strictly confidential
*
*/
package com.navi.ap.di
import javax.inject.Qualifier
@Qualifier @Retention(AnnotationRetention.BINARY) annotation class HmsSDK

View File

@@ -0,0 +1,29 @@
/*
*
* * Copyright © 2024 by Navi Technologies Limited
* * All rights reserved. Strictly confidential
*
*/
package com.navi.ap.di
import android.content.Context
import dagger.Module
import dagger.Provides
import dagger.hilt.InstallIn
import dagger.hilt.android.qualifiers.ApplicationContext
import dagger.hilt.components.SingletonComponent
import javax.inject.Singleton
import live.hms.video.sdk.HMSSDK
@Module
@InstallIn(SingletonComponent::class)
class SDKModule {
@Singleton
@HmsSDK
@Provides
fun providesHmsSDK(@ApplicationContext applicationContext: Context): HMSSDK {
return HMSSDK.Builder(applicationContext).build()
}
}

View File

@@ -281,6 +281,7 @@ private fun handleVKYAgentAssignedResponseState(
eventName = VKYC_AGENT_POLLING_RESPONSE
)
if (vkycAgentAssignedResponse.data?.status == AGENT_JOINED) {
viewModel.periodicTaskScheduler?.stopTask()
val hmsSdkSettingsData =
viewModel.handle.get<VKYCSettingsData>(HMS_SDK_SETTINGS_DATA)
val formattedLoanAmount = viewModel.handle.get<String>(FORMATTED_LOAN_AMOUNT)

View File

@@ -66,3 +66,4 @@ const val CANCEL_VKYC_CALL = "CANCEL_VKYC_CALL"
const val VKYC_AGENT_JOINED = "VKYC_AGENT_JOINED"
const val COROUTINE_JOB_ON_COMPLETION_CALLED = "COROUTINE_JOB_ON_COMPLETION_CALLED"
const val FORMATTED_LOAN_AMOUNT = "FORMATTED_LOAN_AMOUNT"
const val VKYC_VIDEO_CALLING_SCREEN_VIEWMODEL = "VKYC_VIDEO_CALLING_SCREEN_VIEWMODEL"

View File

@@ -18,6 +18,7 @@ import com.navi.ap.common.lambda.verticals.personalloan.PLLambdaRepository
import com.navi.ap.common.models.NetworkResultState
import com.navi.ap.common.usecase.APApiResponseUseCase
import com.navi.ap.common.usecase.UpdateShouldPollStrategyUseCase
import com.navi.ap.di.HmsSDK
import com.navi.ap.screens.genericscreen.vm.ApGenericScreenVM
import com.navi.ap.screens.vkyc.utils.CUSTOMER_EXECUTIVE_IMAGE
import com.navi.ap.screens.vkyc.utils.CUSTOMER_EXECUTIVE_IMAGE_WITH_QUOTES
@@ -40,6 +41,8 @@ import com.navi.ap.screens.vkyc.utils.VKYC_CAMERA_FLIP_EVENT
import com.navi.ap.screens.vkyc.utils.VKYC_EVENT_TYPE
import com.navi.ap.screens.vkyc.utils.VKYC_NOTIFICATION_EVENT
import com.navi.ap.screens.vkyc.utils.VKYC_SDK_CLOSED
import com.navi.ap.screens.vkyc.utils.VKYC_VIDEO_CALLING_SCREEN
import com.navi.ap.screens.vkyc.utils.VKYC_VIDEO_CALLING_SCREEN_VIEWMODEL
import com.navi.ap.screens.vkyc.utils.VOLUME_PERMISSIBLE
import com.navi.ap.screens.vkyc.utils.eventName
import com.navi.ap.screens.vkyc.utils.eventType
@@ -48,6 +51,7 @@ import com.navi.ap.screens.vkyc.utils.referenceId
import com.navi.ap.screens.vkyc.utils.timestamp
import com.navi.ap.utils.EventUtil
import com.navi.ap.utils.constants.ImageType
import com.navi.ap.utils.constants.SCREEN_NAME
import com.navi.ap.utils.logApEvent
import com.navi.base.utils.isNotNull
import com.navi.base.utils.isNull
@@ -102,6 +106,7 @@ constructor(
responseUseCase: APApiResponseUseCase,
shouldPollStrategyUseCase: UpdateShouldPollStrategyUseCase,
eventUtil: EventUtil,
@HmsSDK private val hmsSdk: HMSSDK
) :
ApGenericScreenVM(
repository,
@@ -124,8 +129,6 @@ constructor(
MutableStateFlow<NetworkResultState<VkycCancelStatus>>(NetworkResultState.Nothing())
val cancelVKYCCall = _cancelVKYCCall.asStateFlow()
private val hmsSdk = HMSSDK.Builder(applicationContext).build()
private var previewPutUrl: String? = null
private var vKycReferenceId: String? = null
private lateinit var screenName: String
@@ -146,6 +149,10 @@ constructor(
ImageType.find(imageType)?.let { sendVkycFailedEvent(it) }
}
}
logApEvent(
Pair(SCREEN_NAME, VKYC_VIDEO_CALLING_SCREEN),
eventName = VKYC_VIDEO_CALLING_SCREEN_VIEWMODEL
)
setVideoTrackSettings()
}