From 76db9f0a0f6e4c15d01c9fe011145a945e9d693f Mon Sep 17 00:00:00 2001 From: Priyank Vasa Date: Tue, 1 Feb 2022 09:27:22 -0500 Subject: [PATCH] use current (main) thread for device callbacks --- buildSrc/src/main/kotlin/Config.kt | 2 +- .../android/cameraviewex/Camera2.kt | 20 ++++++++++--------- 2 files changed, 12 insertions(+), 10 deletions(-) diff --git a/buildSrc/src/main/kotlin/Config.kt b/buildSrc/src/main/kotlin/Config.kt index 3cc7372..7cbe12b 100644 --- a/buildSrc/src/main/kotlin/Config.kt +++ b/buildSrc/src/main/kotlin/Config.kt @@ -20,7 +20,7 @@ object Config { private const val majorVersion = 3 private const val minorVersion = 5 - private const val patchVersion = 5 + private const val patchVersion = 7 private const val versionClassifier = "alpha" val versionName: String diff --git a/cameraViewEx/src/main/api21/com/priyankvasa/android/cameraviewex/Camera2.kt b/cameraViewEx/src/main/api21/com/priyankvasa/android/cameraviewex/Camera2.kt index 4034494..5a2e5de 100644 --- a/cameraViewEx/src/main/api21/com/priyankvasa/android/cameraviewex/Camera2.kt +++ b/cameraViewEx/src/main/api21/com/priyankvasa/android/cameraviewex/Camera2.kt @@ -55,7 +55,7 @@ internal open class Camera2( private val preview: PreviewImpl, private val config: CameraConfiguration, private val cameraJob: Job, - context: Context + context: Context, ) : CameraInterface { final override val coroutineContext: CoroutineContext get() = Dispatchers.Default + cameraJob @@ -231,7 +231,7 @@ internal open class Camera2( session: CameraCaptureSession, request: CaptureRequest, timestamp: Long, - frameNumber: Long + frameNumber: Long, ) { launch(Dispatchers.Main) { preview.shutterView.show() } } @@ -239,7 +239,7 @@ internal open class Camera2( override fun onCaptureCompleted( session: CameraCaptureSession, request: CaptureRequest, - result: TotalCaptureResult + result: TotalCaptureResult, ) { if (!videoManager.isVideoRecording) unlockFocus() } @@ -285,7 +285,7 @@ internal open class Camera2( */ private fun android.media.Image.setCropRect( sensorOutputOrientation: Int, - imageOutputOrientation: Int + imageOutputOrientation: Int, ): Boolean { val isScreenPortrait: Boolean = screenRotation % 180 == 0 @@ -502,7 +502,7 @@ internal open class Camera2( final override var screenRotation: Int = 0 final override val isActive: Boolean - get() = cameraJob.isActive && backgroundHandler.looper.thread.isAlive == true + get() = cameraJob.isActive && backgroundHandler.looper.thread.isAlive final override val isCameraOpened: Boolean get() = camera != null @@ -557,7 +557,7 @@ internal open class Camera2( override fun onCaptureCompleted( session: CameraCaptureSession, request: CaptureRequest, - result: TotalCaptureResult + result: TotalCaptureResult, ) { val afState: Int? = result.get(CaptureResult.CONTROL_AF_STATE) val aeState: Int? = result.get(CaptureResult.CONTROL_AE_STATE) @@ -850,7 +850,7 @@ internal open class Camera2( } collectCameraInfo() prepareSingleCaptureReader() - cameraManager.openCamera(this.cameraId, cameraDeviceCallback, backgroundHandler) + cameraManager.openCamera(this.cameraId, cameraDeviceCallback, null) return@runCatching true } .getOrElse { @@ -1122,7 +1122,9 @@ internal open class Camera2( return } - lifecycleRegistry.currentState = Lifecycle.State.STARTED + launch(Dispatchers.Main) { + lifecycleRegistry.currentState = Lifecycle.State.STARTED + } val surfaces: List = runCatching { setupSurfaces(previewRequestBuilder) } .getOrElse { @@ -1140,7 +1142,7 @@ internal open class Camera2( @Throws(IllegalStateException::class) private fun setupSurfaces( captureRequestBuilder: CaptureRequest.Builder, - shouldAddMediaRecorderSurface: Boolean = false + shouldAddMediaRecorderSurface: Boolean = false, ): MutableList { val surfaces: MutableList = mutableListOf()