diff --git a/app/src/main/java/app/myzel394/alibi/services/RecorderService.kt b/app/src/main/java/app/myzel394/alibi/services/RecorderService.kt index f69c792..7a42ced 100644 --- a/app/src/main/java/app/myzel394/alibi/services/RecorderService.kt +++ b/app/src/main/java/app/myzel394/alibi/services/RecorderService.kt @@ -32,6 +32,9 @@ abstract class RecorderService : LifecycleService() { var state = RecorderState.IDLE private set + protected var _newState = RecorderState.IDLE + private set + var onStateChange: ((RecorderState) -> Unit)? = null var onError: () -> Unit = {} @@ -168,8 +171,9 @@ abstract class RecorderService : LifecycleService() { } suspend fun stopRecording() { - changeState(RecorderState.IDLE) + _newState = RecorderState.IDLE stop() + changeState(RecorderState.IDLE) } override fun onDestroy() { 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 539b447..349aa78 100644 --- a/app/src/main/java/app/myzel394/alibi/services/VideoRecorderService.kt +++ b/app/src/main/java/app/myzel394/alibi/services/VideoRecorderService.kt @@ -105,11 +105,11 @@ class VideoRecorderService : super.startNewCycle() fun action() { - activeRecording?.stop() + stopActiveRecording() val newRecording = prepareVideoRecording() activeRecording = newRecording.start(ContextCompat.getMainExecutor(this)) { event -> - if (event is VideoRecordEvent.Finalize && this@VideoRecorderService.state == RecorderState.IDLE) { + if (event is VideoRecordEvent.Finalize && this@VideoRecorderService._newState == RecorderState.IDLE) { _videoFinalizerListener.complete(Unit) } } @@ -197,7 +197,9 @@ class VideoRecorderService : // `resume` override not needed as `startNewCycle` is called by `IntervalRecorderService` private fun stopActiveRecording() { - activeRecording?.stop() + runCatching { + activeRecording?.stop() + } } @SuppressLint("MissingPermission") diff --git a/app/src/main/java/app/myzel394/alibi/ui/models/BaseRecorderModel.kt b/app/src/main/java/app/myzel394/alibi/ui/models/BaseRecorderModel.kt index 01cfad1..3e51e1e 100644 --- a/app/src/main/java/app/myzel394/alibi/ui/models/BaseRecorderModel.kt +++ b/app/src/main/java/app/myzel394/alibi/ui/models/BaseRecorderModel.kt @@ -136,7 +136,7 @@ abstract class BaseRecorderModel