NTP-18848 | Crash fix for camera initialisation exception of camera unavailable (#14081)
This commit is contained in:
@@ -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 {
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user