NTP-18848 | Crash fix for camera initialisation exception of camera unavailable (#14081)

This commit is contained in:
Ujjwal Kumar
2024-12-11 18:50:49 +05:30
committed by GitHub
parent becc3702b6
commit dac9f52460
2 changed files with 19 additions and 2 deletions

View File

@@ -1545,6 +1545,13 @@ class NaviPayAnalytics private constructor() {
eventName = "NaviPay_QrScanner_UrlTypeQRScanned_Cancel"
)
}
fun onQRScannerInitialisationError(message: String) {
NaviTrackEvent.trackEventOnClickStream(
eventName = "NaviPay_QrScanner_InitialisationError",
mapOf("message" to message)
)
}
}
inner class NaviPayBankDetailsInput {

View File

@@ -800,7 +800,17 @@ private fun QrCamera(
ProcessCameraProvider.getInstance(naviPayActivity.applicationContext).apply {
addListener(
{
val cameraProvider = this.get()
val cameraProvider =
try {
this.get()
} catch (e: Exception) {
// TODO: Add a message of camera unavailable InitializationException
// with CameraUnavailableException as cause
naviPayAnalytics.onQRScannerInitialisationError(
message = e.message ?: ""
)
return@addListener
}
val cameraSelector =
CameraSelector.Builder()
@@ -858,7 +868,7 @@ private fun QrCamera(
val preview =
Preview.Builder().build().also {
it.setSurfaceProvider(previewView.surfaceProvider)
it.surfaceProvider = previewView.surfaceProvider
}
var camera: Camera? = null