From 369050e94e09e32b41bf837f0866ac88419f83e1 Mon Sep 17 00:00:00 2001 From: Myzel394 <50424412+Myzel394@users.noreply.github.com> Date: Thu, 26 Oct 2023 19:12:32 +0200 Subject: [PATCH] fix: Properly clear recordings when deleteRecordingsImmediately is set --- .../app/myzel394/alibi/ui/screens/AudioRecorder.kt | 12 ++++++++++-- .../main/java/app/myzel394/alibi/ui/utils/file.kt | 9 ++++++++- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/app/myzel394/alibi/ui/screens/AudioRecorder.kt b/app/src/main/java/app/myzel394/alibi/ui/screens/AudioRecorder.kt index 4c0eddd..8346c0d 100644 --- a/app/src/main/java/app/myzel394/alibi/ui/screens/AudioRecorder.kt +++ b/app/src/main/java/app/myzel394/alibi/ui/screens/AudioRecorder.kt @@ -49,14 +49,22 @@ fun AudioRecorder( audioRecorder: AudioRecorderModel, ) { val context = LocalContext.current + val settings = rememberSettings() - val saveFile = rememberFileSaverDialog(settings.audioRecorderSettings.getMimeType()) val scope = rememberCoroutineScope() + val saveFile = rememberFileSaverDialog( + settings.audioRecorderSettings.getMimeType() + ) { + if (settings.audioRecorderSettings.deleteRecordingsImmediately) { + AudioRecorderExporter.clearAllRecordings(context) + } + } + var isProcessingAudio by remember { mutableStateOf(false) } var showRecorderError by remember { mutableStateOf(false) } - DisposableEffect(Unit) { + DisposableEffect(key1 = audioRecorder, key2 = settings.audioRecorderSettings) { audioRecorder.onRecordingSave = { scope.launch { isProcessingAudio = true diff --git a/app/src/main/java/app/myzel394/alibi/ui/utils/file.kt b/app/src/main/java/app/myzel394/alibi/ui/utils/file.kt index cd50b80..db61daf 100644 --- a/app/src/main/java/app/myzel394/alibi/ui/utils/file.kt +++ b/app/src/main/java/app/myzel394/alibi/ui/utils/file.kt @@ -12,7 +12,10 @@ import androidx.compose.ui.platform.LocalContext import java.io.File @Composable -fun rememberFileSaverDialog(mimeType: String): ((File, String) -> Unit) { +fun rememberFileSaverDialog( + mimeType: String, + callback: (Uri) -> Unit = {}, +): ((File, String) -> Unit) { val context = LocalContext.current var file = remember { mutableStateOf(null) } @@ -28,6 +31,10 @@ fun rememberFileSaverDialog(mimeType: String): ((File, String) -> Unit) { } file.value = null + + if (it != null) { + callback(it) + } } return { it, name ->