diff --git a/feature/camera/src/main/java/org/signal/camera/CameraScreen.kt b/feature/camera/src/main/java/org/signal/camera/CameraScreen.kt index a08b878ad1..8ff0f73b4a 100644 --- a/feature/camera/src/main/java/org/signal/camera/CameraScreen.kt +++ b/feature/camera/src/main/java/org/signal/camera/CameraScreen.kt @@ -1,5 +1,6 @@ package org.signal.camera +import android.os.Build import androidx.camera.compose.CameraXViewfinder import androidx.camera.core.SurfaceRequest import androidx.camera.lifecycle.ProcessCameraProvider @@ -91,6 +92,9 @@ fun CameraScreen( val lifecycleOwner = LocalLifecycleOwner.current val isInPreview = LocalInspectionMode.current + // Older android versions need to use embedded + val resolvedImplementationMode = if (Build.VERSION.SDK_INT <= 24) ImplementationMode.EMBEDDED else implementationMode + var surfaceRequest by remember { mutableStateOf(null) } KeepScreenOnEffect(enabled = state.isRecording) @@ -152,7 +156,7 @@ fun CameraScreen( val currentSurfaceRequest = surfaceRequest!! CameraXViewfinder( - implementationMode = implementationMode, + implementationMode = resolvedImplementationMode, surfaceRequest = currentSurfaceRequest, coordinateTransformer = coordinateTransformer, contentScale = if (fillViewport) ContentScale.Crop else ContentScale.Fit,