fix: Catch errors in CaptureSession configuration

This commit is contained in:
Marc Rousavy 2023-10-10 19:18:54 +02:00
parent 727fb39f01
commit 18e69269d4
No known key found for this signature in database
GPG Key ID: 83BEF0F19E8F5321

View File

@ -159,16 +159,16 @@ class CameraView(context: Context) :
fun update(changedProps: ArrayList<String>) { fun update(changedProps: ArrayList<String>) {
Log.i(TAG, "Props changed: $changedProps") Log.i(TAG, "Props changed: $changedProps")
try { val shouldReconfigurePreview = changedProps.containsAny(propsThatRequirePreviewReconfiguration)
val shouldReconfigurePreview = changedProps.containsAny(propsThatRequirePreviewReconfiguration) val shouldReconfigureSession = shouldReconfigurePreview || changedProps.containsAny(propsThatRequireSessionReconfiguration)
val shouldReconfigureSession = shouldReconfigurePreview || changedProps.containsAny(propsThatRequireSessionReconfiguration) val shouldReconfigureFormat = shouldReconfigureSession || changedProps.containsAny(propsThatRequireFormatReconfiguration)
val shouldReconfigureFormat = shouldReconfigureSession || changedProps.containsAny(propsThatRequireFormatReconfiguration) val shouldReconfigureZoom = shouldReconfigureSession || changedProps.contains("zoom")
val shouldReconfigureZoom = shouldReconfigureSession || changedProps.contains("zoom") val shouldReconfigureTorch = shouldReconfigureSession || changedProps.contains("torch")
val shouldReconfigureTorch = shouldReconfigureSession || changedProps.contains("torch") val shouldCheckActive = shouldReconfigureFormat || changedProps.contains("isActive")
val shouldCheckActive = shouldReconfigureFormat || changedProps.contains("isActive") val shouldReconfigureZoomGesture = changedProps.contains("enableZoomGesture")
val shouldReconfigureZoomGesture = changedProps.contains("enableZoomGesture")
launch { launch {
try {
// Expensive Calls // Expensive Calls
if (shouldReconfigurePreview) { if (shouldReconfigurePreview) {
setupPreviewView() setupPreviewView()
@ -192,10 +192,10 @@ class CameraView(context: Context) :
if (shouldReconfigureZoomGesture) { if (shouldReconfigureZoomGesture) {
updateZoomGesture() updateZoomGesture()
} }
} catch (e: Throwable) {
Log.e(TAG, "update() threw: ${e.message}")
invokeOnError(e)
} }
} catch (e: Throwable) {
Log.e(TAG, "update() threw: ${e.message}")
invokeOnError(e)
} }
} }