mirror of
https://github.com/Myzel394/Alibi.git
synced 2025-06-18 23:05:26 +02:00
fix: Properly check if recordings are available
This commit is contained in:
parent
da7251fc80
commit
b6bfac4eee
@ -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
|
||||
|
@ -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
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -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,
|
||||
|
@ -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()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user