fix: Properly clear recordings when deleteRecordingsImmediately is set

This commit is contained in:
Myzel394 2023-10-26 19:12:32 +02:00
parent 6b6a19ead3
commit 369050e94e
No known key found for this signature in database
GPG Key ID: 79CC92F37B3E1A2B
2 changed files with 18 additions and 3 deletions

View File

@ -49,14 +49,22 @@ fun AudioRecorder(
audioRecorder: AudioRecorderModel, audioRecorder: AudioRecorderModel,
) { ) {
val context = LocalContext.current val context = LocalContext.current
val settings = rememberSettings() val settings = rememberSettings()
val saveFile = rememberFileSaverDialog(settings.audioRecorderSettings.getMimeType())
val scope = rememberCoroutineScope() val scope = rememberCoroutineScope()
val saveFile = rememberFileSaverDialog(
settings.audioRecorderSettings.getMimeType()
) {
if (settings.audioRecorderSettings.deleteRecordingsImmediately) {
AudioRecorderExporter.clearAllRecordings(context)
}
}
var isProcessingAudio by remember { mutableStateOf(false) } var isProcessingAudio by remember { mutableStateOf(false) }
var showRecorderError by remember { mutableStateOf(false) } var showRecorderError by remember { mutableStateOf(false) }
DisposableEffect(Unit) { DisposableEffect(key1 = audioRecorder, key2 = settings.audioRecorderSettings) {
audioRecorder.onRecordingSave = { audioRecorder.onRecordingSave = {
scope.launch { scope.launch {
isProcessingAudio = true isProcessingAudio = true

View File

@ -12,7 +12,10 @@ import androidx.compose.ui.platform.LocalContext
import java.io.File import java.io.File
@Composable @Composable
fun rememberFileSaverDialog(mimeType: String): ((File, String) -> Unit) { fun rememberFileSaverDialog(
mimeType: String,
callback: (Uri) -> Unit = {},
): ((File, String) -> Unit) {
val context = LocalContext.current val context = LocalContext.current
var file = remember { mutableStateOf<File?>(null) } var file = remember { mutableStateOf<File?>(null) }
@ -28,6 +31,10 @@ fun rememberFileSaverDialog(mimeType: String): ((File, String) -> Unit) {
} }
file.value = null file.value = null
if (it != null) {
callback(it)
}
} }
return { it, name -> return { it, name ->