From 41f1aca833b1b29310dbd5354ff41b0de3476e5e Mon Sep 17 00:00:00 2001 From: Myzel394 <50424412+Myzel394@users.noreply.github.com> Date: Mon, 18 Mar 2024 17:02:38 +0100 Subject: [PATCH] fix: Always listen for video finalization event Signed-off-by: Myzel394 <50424412+Myzel394@users.noreply.github.com> --- .../app/myzel394/alibi/services/VideoRecorderService.kt | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/app/myzel394/alibi/services/VideoRecorderService.kt b/app/src/main/java/app/myzel394/alibi/services/VideoRecorderService.kt index 7f4ac2d..aa74867 100644 --- a/app/src/main/java/app/myzel394/alibi/services/VideoRecorderService.kt +++ b/app/src/main/java/app/myzel394/alibi/services/VideoRecorderService.kt @@ -50,7 +50,7 @@ class VideoRecorderService : // Used to listen and check if the camera is available private var _cameraAvailableListener = CompletableDeferred() - private var _videoFinalizerListener = CompletableDeferred() + private lateinit var _videoFinalizerListener: CompletableDeferred; // Absolute last completer that can be awaited to ensure that the camera is closed private var _cameraCloserListener = CompletableDeferred() @@ -129,8 +129,10 @@ class VideoRecorderService : stopActiveRecording() val newRecording = prepareVideoRecording() + _videoFinalizerListener = CompletableDeferred() + activeRecording = newRecording.start(ContextCompat.getMainExecutor(this)) { event -> - if (event is VideoRecordEvent.Finalize && this@VideoRecorderService.state == RecorderState.STOPPED) { + if (event is VideoRecordEvent.Finalize && this@VideoRecorderService.state == RecorderState.STOPPED || this@VideoRecorderService.state == RecorderState.PAUSED) { _videoFinalizerListener.complete(Unit) } }