diff --git a/app/src/main/java/app/myzel394/alibi/db/AppSettings.kt b/app/src/main/java/app/myzel394/alibi/db/AppSettings.kt index 30191f6..49b5481 100644 --- a/app/src/main/java/app/myzel394/alibi/db/AppSettings.kt +++ b/app/src/main/java/app/myzel394/alibi/db/AppSettings.kt @@ -5,6 +5,7 @@ import android.media.MediaRecorder import android.os.Build import app.myzel394.alibi.R import app.myzel394.alibi.helpers.AudioRecorderExporter +import app.myzel394.alibi.helpers.BatchesFolder import com.arthenica.ffmpegkit.FFmpegKit import com.arthenica.ffmpegkit.ReturnCode import kotlinx.serialization.Serializable @@ -77,8 +78,8 @@ data class RecordingInformation( val intervalDuration: Long, val fileExtension: String, ) { - val hasRecordingsAvailable - get() = File(folderPath).listFiles()?.isNotEmpty() ?: false + fun hasRecordingsAvailable(context: Context): Boolean = + BatchesFolder.importFromFolder(folderPath, context).hasRecordingsAvailable() } @Serializable diff --git a/app/src/main/java/app/myzel394/alibi/helpers/BatchesFolder.kt b/app/src/main/java/app/myzel394/alibi/helpers/BatchesFolder.kt index 86fb023..025a48a 100644 --- a/app/src/main/java/app/myzel394/alibi/helpers/BatchesFolder.kt +++ b/app/src/main/java/app/myzel394/alibi/helpers/BatchesFolder.kt @@ -142,7 +142,8 @@ data class BatchesFolder( fun hasRecordingsAvailable(): Boolean { return when (type) { BatchType.INTERNAL -> getInternalFolder().listFiles()?.isNotEmpty() ?: false - BatchType.CUSTOM -> getCustomDefinedFolder().listFiles().isNotEmpty() + BatchType.CUSTOM -> customFolder?.findFile(subfolderName)?.listFiles()?.isNotEmpty() + ?: false } } diff --git a/app/src/main/java/app/myzel394/alibi/ui/components/AudioRecorder/molecules/StartRecording.kt b/app/src/main/java/app/myzel394/alibi/ui/components/AudioRecorder/molecules/StartRecording.kt index 3342774..6ea90d2 100644 --- a/app/src/main/java/app/myzel394/alibi/ui/components/AudioRecorder/molecules/StartRecording.kt +++ b/app/src/main/java/app/myzel394/alibi/ui/components/AudioRecorder/molecules/StartRecording.kt @@ -129,7 +129,7 @@ fun StartRecording( .fillMaxWidth(), textAlign = TextAlign.Center, ) - if (appSettings.lastRecording?.hasRecordingsAvailable == true) { + if (appSettings.lastRecording?.hasRecordingsAvailable(context) == true) { Column( modifier = Modifier.weight(1f), horizontalAlignment = Alignment.CenterHorizontally, diff --git a/app/src/main/java/app/myzel394/alibi/ui/screens/AudioRecorderScreen.kt b/app/src/main/java/app/myzel394/alibi/ui/screens/AudioRecorderScreen.kt index 463badf..597a77a 100644 --- a/app/src/main/java/app/myzel394/alibi/ui/screens/AudioRecorderScreen.kt +++ b/app/src/main/java/app/myzel394/alibi/ui/screens/AudioRecorderScreen.kt @@ -36,7 +36,6 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.dp -import androidx.core.content.ContextCompat.startActivity import androidx.navigation.NavController import app.myzel394.alibi.ui.components.AudioRecorder.organisms.RecordingStatus import app.myzel394.alibi.ui.components.AudioRecorder.molecules.StartRecording @@ -130,25 +129,26 @@ fun AudioRecorderScreen( val recording = audioRecorder.recorderService?.getRecordingInformation() ?: settings.lastRecording ?: throw Exception("No recording information available") - val outputFile = audioRecorder.batchesFolder!!.getOutputFileForFFmpeg( + val batchesFolder = BatchesFolder.importFromFolder(recording.folderPath, context) + val outputFile = batchesFolder.getOutputFileForFFmpeg( recording.recordingStart, recording.fileExtension ) AudioRecorderExporter(recording).concatenateFiles( - audioRecorder.recorderService!!.batchesFolder, + batchesFolder, outputFile, ) - val name = audioRecorder.batchesFolder!!.getName( + val name = batchesFolder.getName( recording.recordingStart, recording.fileExtension, ) - when (audioRecorder.batchesFolder!!.type) { + when (batchesFolder.type) { BatchesFolder.BatchType.INTERNAL -> { saveFile( - audioRecorder.batchesFolder!!.asInternalGetOutputFile( + batchesFolder.asInternalGetOutputFile( recording.recordingStart, recording.fileExtension, ), name @@ -156,10 +156,10 @@ fun AudioRecorderScreen( } BatchesFolder.BatchType.CUSTOM -> { - showSnackbar(audioRecorder.batchesFolder!!.customFolder!!.uri) + showSnackbar(batchesFolder.customFolder!!.uri) if (settings.audioRecorderSettings.deleteRecordingsImmediately) { - audioRecorder.batchesFolder!!.deleteRecordings() + batchesFolder.deleteRecordings() } } }