From ac5dac127fb7256b1127998df3ac91d790308193 Mon Sep 17 00:00:00 2001 From: Loewy Date: Wed, 21 Jan 2026 12:01:56 -0800 Subject: [PATCH] catch focus timeout error on android --- .../camera/core/PersistentCameraCaptureSession.kt | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/package/android/src/main/java/com/mrousavy/camera/core/PersistentCameraCaptureSession.kt b/package/android/src/main/java/com/mrousavy/camera/core/PersistentCameraCaptureSession.kt index 3bb1c15..7c78c06 100644 --- a/package/android/src/main/java/com/mrousavy/camera/core/PersistentCameraCaptureSession.kt +++ b/package/android/src/main/java/com/mrousavy/camera/core/PersistentCameraCaptureSession.kt @@ -235,10 +235,15 @@ class PersistentCameraCaptureSession(private val cameraManager: CameraManager, p // 1. Run a precapture sequence for AF, AE and AWB. focusJob = coroutineScope.launch { - val request = repeatingRequest.createCaptureRequest(device, deviceDetails, outputs) - val options = - PrecaptureOptions(listOf(PrecaptureTrigger.AF, PrecaptureTrigger.AE), Flash.OFF, listOf(point), false, FOCUS_RESET_TIMEOUT) - session.precapture(request, deviceDetails, options) + try { + val request = repeatingRequest.createCaptureRequest(device, deviceDetails, outputs) + val options = + PrecaptureOptions(listOf(PrecaptureTrigger.AF, PrecaptureTrigger.AE), Flash.OFF, listOf(point), false, FOCUS_RESET_TIMEOUT) + session.precapture(request, deviceDetails, options) + } catch (e: CaptureTimedOutError) { + // Focus timed out - this is non-fatal, just log and continue + Log.w(TAG, "Focus timed out at point $point, continuing without focus lock") + } } focusJob?.join()