CameraScreen: fix torch state persistence (broken by previous commit)
This commit is contained in:
@@ -123,12 +123,16 @@ fun CameraScreen(
|
|||||||
val thumbnailCoords = remember { mutableStateOf(Offset.Zero) }
|
val thumbnailCoords = remember { mutableStateOf(Offset.Zero) }
|
||||||
var isDebugMode by remember { mutableStateOf(false) }
|
var isDebugMode by remember { mutableStateOf(false) }
|
||||||
val isTorchEnabled by cameraViewModel.isTorchEnabled.collectAsStateWithLifecycle()
|
val isTorchEnabled by cameraViewModel.isTorchEnabled.collectAsStateWithLifecycle()
|
||||||
|
var torchReapplied by remember { mutableStateOf(false) }
|
||||||
|
|
||||||
BackHandler { navigation.back() }
|
BackHandler { navigation.back() }
|
||||||
|
|
||||||
val captureController = remember { CameraCaptureController() }
|
val captureController = remember { CameraCaptureController() }
|
||||||
DisposableEffect(Unit) {
|
DisposableEffect(Unit) {
|
||||||
onDispose { captureController.shutdown() }
|
onDispose {
|
||||||
|
captureController.shutdown()
|
||||||
|
torchReapplied = false
|
||||||
|
}
|
||||||
}
|
}
|
||||||
LaunchedEffect(captureController.cameraControl, isTorchEnabled) {
|
LaunchedEffect(captureController.cameraControl, isTorchEnabled) {
|
||||||
captureController.cameraControl?.enableTorch(isTorchEnabled)
|
captureController.cameraControl?.enableTorch(isTorchEnabled)
|
||||||
@@ -166,7 +170,14 @@ fun CameraScreen(
|
|||||||
CameraScreenScaffold(
|
CameraScreenScaffold(
|
||||||
cameraPreview = {
|
cameraPreview = {
|
||||||
CameraPreview(
|
CameraPreview(
|
||||||
onImageAnalyzed = onImageAnalyzed,
|
onImageAnalyzed = {
|
||||||
|
onImageAnalyzed(it)
|
||||||
|
// Re-apply torch once the camera session is actually active (first analysis)
|
||||||
|
if (!torchReapplied) {
|
||||||
|
captureController.cameraControl?.enableTorch(isTorchEnabled)
|
||||||
|
torchReapplied = true
|
||||||
|
}
|
||||||
|
},
|
||||||
captureController = captureController,
|
captureController = captureController,
|
||||||
onPreviewViewReady = { view ->
|
onPreviewViewReady = { view ->
|
||||||
previewView = view
|
previewView = view
|
||||||
|
|||||||
Reference in New Issue
Block a user