diff --git a/package/android/src/main/java/com/mrousavy/camera/react/CameraDevicesManager.kt b/package/android/src/main/java/com/mrousavy/camera/react/CameraDevicesManager.kt index dccff1899c..21ac2b2842 100644 --- a/package/android/src/main/java/com/mrousavy/camera/react/CameraDevicesManager.kt +++ b/package/android/src/main/java/com/mrousavy/camera/react/CameraDevicesManager.kt @@ -59,9 +59,8 @@ class CameraDevicesManager(private val reactContext: ReactApplicationContext) : override fun getName(): String = TAG - override fun initialize() { - super.initialize() - cameraManager.registerAvailabilityCallback(callback, null) + // Init cameraProvider + manager as early as possible + init { coroutineScope.launch { try { Log.i(TAG, "Initializing ProcessCameraProvider...") @@ -76,6 +75,12 @@ class CameraDevicesManager(private val reactContext: ReactApplicationContext) : } } + // Note: initialize() will be called after getConstants on new arch! + override fun initialize() { + super.initialize() + cameraManager.registerAvailabilityCallback(callback, null) + } + override fun invalidate() { cameraManager.unregisterAvailabilityCallback(callback) super.invalidate()