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 android.os.Build
import app.myzel394.alibi.R import app.myzel394.alibi.R
import app.myzel394.alibi.helpers.AudioRecorderExporter import app.myzel394.alibi.helpers.AudioRecorderExporter
import app.myzel394.alibi.helpers.BatchesFolder
import com.arthenica.ffmpegkit.FFmpegKit import com.arthenica.ffmpegkit.FFmpegKit
import com.arthenica.ffmpegkit.ReturnCode import com.arthenica.ffmpegkit.ReturnCode
import kotlinx.serialization.Serializable import kotlinx.serialization.Serializable
@ -77,8 +78,8 @@ data class RecordingInformation(
val intervalDuration: Long, val intervalDuration: Long,
val fileExtension: String, val fileExtension: String,
) { ) {
val hasRecordingsAvailable fun hasRecordingsAvailable(context: Context): Boolean =
get() = File(folderPath).listFiles()?.isNotEmpty() ?: false BatchesFolder.importFromFolder(folderPath, context).hasRecordingsAvailable()
} }
@Serializable @Serializable

View File

@ -142,7 +142,8 @@ data class BatchesFolder(
fun hasRecordingsAvailable(): Boolean { fun hasRecordingsAvailable(): Boolean {
return when (type) { return when (type) {
BatchType.INTERNAL -> getInternalFolder().listFiles()?.isNotEmpty() ?: false 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(), .fillMaxWidth(),
textAlign = TextAlign.Center, textAlign = TextAlign.Center,
) )
if (appSettings.lastRecording?.hasRecordingsAvailable == true) { if (appSettings.lastRecording?.hasRecordingsAvailable(context) == true) {
Column( Column(
modifier = Modifier.weight(1f), modifier = Modifier.weight(1f),
horizontalAlignment = Alignment.CenterHorizontally, horizontalAlignment = Alignment.CenterHorizontally,

View File

@ -36,7 +36,6 @@ import androidx.compose.ui.Modifier
import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.res.stringResource import androidx.compose.ui.res.stringResource
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import androidx.core.content.ContextCompat.startActivity
import androidx.navigation.NavController import androidx.navigation.NavController
import app.myzel394.alibi.ui.components.AudioRecorder.organisms.RecordingStatus import app.myzel394.alibi.ui.components.AudioRecorder.organisms.RecordingStatus
import app.myzel394.alibi.ui.components.AudioRecorder.molecules.StartRecording import app.myzel394.alibi.ui.components.AudioRecorder.molecules.StartRecording
@ -130,25 +129,26 @@ fun AudioRecorderScreen(
val recording = audioRecorder.recorderService?.getRecordingInformation() val recording = audioRecorder.recorderService?.getRecordingInformation()
?: settings.lastRecording ?: settings.lastRecording
?: throw Exception("No recording information available") ?: 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.recordingStart,
recording.fileExtension recording.fileExtension
) )
AudioRecorderExporter(recording).concatenateFiles( AudioRecorderExporter(recording).concatenateFiles(
audioRecorder.recorderService!!.batchesFolder, batchesFolder,
outputFile, outputFile,
) )
val name = audioRecorder.batchesFolder!!.getName( val name = batchesFolder.getName(
recording.recordingStart, recording.recordingStart,
recording.fileExtension, recording.fileExtension,
) )
when (audioRecorder.batchesFolder!!.type) { when (batchesFolder.type) {
BatchesFolder.BatchType.INTERNAL -> { BatchesFolder.BatchType.INTERNAL -> {
saveFile( saveFile(
audioRecorder.batchesFolder!!.asInternalGetOutputFile( batchesFolder.asInternalGetOutputFile(
recording.recordingStart, recording.recordingStart,
recording.fileExtension, recording.fileExtension,
), name ), name
@ -156,10 +156,10 @@ fun AudioRecorderScreen(
} }
BatchesFolder.BatchType.CUSTOM -> { BatchesFolder.BatchType.CUSTOM -> {
showSnackbar(audioRecorder.batchesFolder!!.customFolder!!.uri) showSnackbar(batchesFolder.customFolder!!.uri)
if (settings.audioRecorderSettings.deleteRecordingsImmediately) { if (settings.audioRecorderSettings.deleteRecordingsImmediately) {
audioRecorder.batchesFolder!!.deleteRecordings() batchesFolder.deleteRecordings()
} }
} }
} }