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 aa74867..06bcac8 100644 --- a/app/src/main/java/app/myzel394/alibi/services/VideoRecorderService.kt +++ b/app/src/main/java/app/myzel394/alibi/services/VideoRecorderService.kt @@ -191,17 +191,22 @@ class VideoRecorderService : videoCapture = buildVideoCapture(recorder) runOnMain { - camera = cameraProvider!!.bindToLifecycle( - this, - selectedCamera, - videoCapture - ) - cameraControl = CameraControl(camera!!).also { - it.init() - } - onCameraControlAvailable() + try { + camera = cameraProvider!!.bindToLifecycle( + this, + selectedCamera, + videoCapture + ) - _cameraAvailableListener.complete(Unit) + cameraControl = CameraControl(camera!!).also { + it.init() + } + onCameraControlAvailable() + + _cameraAvailableListener.complete(Unit) + } catch (error: IllegalArgumentException) { + onError() + } } } diff --git a/app/src/main/java/app/myzel394/alibi/ui/components/RecorderScreen/atoms/RecorderErrorDialog.kt b/app/src/main/java/app/myzel394/alibi/ui/components/RecorderScreen/atoms/RecorderErrorDialog.kt index 92da619..a05306c 100644 --- a/app/src/main/java/app/myzel394/alibi/ui/components/RecorderScreen/atoms/RecorderErrorDialog.kt +++ b/app/src/main/java/app/myzel394/alibi/ui/components/RecorderScreen/atoms/RecorderErrorDialog.kt @@ -3,8 +3,6 @@ package app.myzel394.alibi.ui.components.RecorderScreen.atoms import androidx.compose.material.icons.Icons import androidx.compose.material.icons.filled.Warning import androidx.compose.material3.AlertDialog -import androidx.compose.material3.Button -import androidx.compose.material3.ButtonDefaults import androidx.compose.material3.Icon import androidx.compose.material3.Text import androidx.compose.material3.TextButton @@ -15,7 +13,6 @@ import app.myzel394.alibi.R @Composable fun RecorderErrorDialog( onClose: () -> Unit, - onSave: () -> Unit, ) { AlertDialog( onDismissRequest = onClose, @@ -31,14 +28,9 @@ fun RecorderErrorDialog( text = { Text(stringResource(R.string.ui_recorder_error_recording_description)) }, - dismissButton = { - TextButton(onClick = onClose) { - Text(stringResource(R.string.dialog_close_cancel_label)) - } - }, confirmButton = { - TextButton(onClick = onSave) { - Text(stringResource(R.string.ui_recorder_action_save_label)) + TextButton(onClick = onClose) { + Text(stringResource(R.string.dialog_close_neutral_label)) } } ) diff --git a/app/src/main/java/app/myzel394/alibi/ui/components/RecorderScreen/organisms/RecorderEventsHandler.kt b/app/src/main/java/app/myzel394/alibi/ui/components/RecorderScreen/organisms/RecorderEventsHandler.kt index 6db673d..688a33a 100644 --- a/app/src/main/java/app/myzel394/alibi/ui/components/RecorderScreen/organisms/RecorderEventsHandler.kt +++ b/app/src/main/java/app/myzel394/alibi/ui/components/RecorderScreen/organisms/RecorderEventsHandler.kt @@ -93,9 +93,16 @@ fun RecorderEventsHandler( recorder: RecorderModel ) { if (!settings.deleteRecordingsImmediately) { + val information = recorder.recorderService?.getRecordingInformation() + + if (information == null) { + Log.e("RecorderEventsHandler", "Recording information is null") + return + } + dataStore.updateData { it.setLastRecording( - recorder.recorderService!!.getRecordingInformation() + information ) } } @@ -247,6 +254,13 @@ fun RecorderEventsHandler( scope.launch { saveAsLastRecording(audioRecorder as RecorderModel) + runCatching { + audioRecorder.stopRecording(context) + } + runCatching { + audioRecorder.destroyService(context) + } + showRecorderError = true } } @@ -290,6 +304,13 @@ fun RecorderEventsHandler( scope.launch { saveAsLastRecording(videoRecorder as RecorderModel) + runCatching { + videoRecorder.stopRecording(context) + } + runCatching { + videoRecorder.destroyService(context) + } + showRecorderError = true } } @@ -324,8 +345,6 @@ fun RecorderEventsHandler( onClose = { showRecorderError = false }, - onSave = { - }, ) if (showBatchesInaccessibleError) diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 79cab07..ec7cd34 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -80,7 +80,7 @@ Recording paused Alibi is paused An error occurred - Alibi encountered an error during recording. Would you like to try saving the recording? + Alibi encountered an error during recording. Try using different settings or restart the app. Language Change Device Microphone