fix: Properly check if recordings are available

This commit is contained in:
Myzel394 2023-11-19 18:53:32 +01:00
parent da7251fc80
commit b6bfac4eee
No known key found for this signature in database
GPG Key ID: 79CC92F37B3E1A2B
4 changed files with 14 additions and 12 deletions

View File

@ -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

View File

@ -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
}
}

View File

@ -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,

View File

@ -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()
}
}
}