diff --git a/app/src/main/java/app/myzel394/alibi/services/AudioRecorderService.kt b/app/src/main/java/app/myzel394/alibi/services/AudioRecorderService.kt index 4590ce3..ce763b5 100644 --- a/app/src/main/java/app/myzel394/alibi/services/AudioRecorderService.kt +++ b/app/src/main/java/app/myzel394/alibi/services/AudioRecorderService.kt @@ -6,21 +6,21 @@ import android.media.AudioDeviceInfo import android.media.AudioManager import android.media.MediaRecorder import android.media.MediaRecorder.OnErrorListener -import android.net.Uri import android.os.Build import android.os.Handler import android.os.Looper -import androidx.compose.material3.SnackbarDuration -import androidx.documentfile.provider.DocumentFile import app.myzel394.alibi.db.AudioRecorderSettings import app.myzel394.alibi.db.RecordingInformation import app.myzel394.alibi.enums.RecorderState +import app.myzel394.alibi.helpers.AudioBatchesFolder import app.myzel394.alibi.helpers.BatchesFolder import app.myzel394.alibi.ui.utils.MicrophoneInfo import java.lang.IllegalStateException class AudioRecorderService : IntervalRecorderService() { + override var batchesFolder: BatchesFolder = AudioBatchesFolder.viaInternalFolder(this) + var amplitudesAmount = 1000 var selectedMicrophone: MicrophoneInfo? = null diff --git a/app/src/main/java/app/myzel394/alibi/services/IntervalRecorderService.kt b/app/src/main/java/app/myzel394/alibi/services/IntervalRecorderService.kt index 3bf7b7d..5ab1171 100644 --- a/app/src/main/java/app/myzel394/alibi/services/IntervalRecorderService.kt +++ b/app/src/main/java/app/myzel394/alibi/services/IntervalRecorderService.kt @@ -1,20 +1,6 @@ package app.myzel394.alibi.services -import android.media.MediaRecorder -import android.net.Uri -import androidx.documentfile.provider.DocumentFile -import app.myzel394.alibi.dataStore -import app.myzel394.alibi.db.AudioRecorderSettings -import app.myzel394.alibi.db.RecordingInformation -import app.myzel394.alibi.helpers.AudioRecorderExporter import app.myzel394.alibi.helpers.BatchesFolder -import kotlinx.coroutines.CoroutineScope -import kotlinx.coroutines.Dispatchers -import kotlinx.coroutines.SupervisorJob -import kotlinx.coroutines.flow.collectLatest -import kotlinx.coroutines.launch -import org.w3c.dom.DocumentFragment -import java.io.File import java.util.concurrent.Executors import java.util.concurrent.ScheduledExecutorService import java.util.concurrent.TimeUnit @@ -28,7 +14,7 @@ abstract class IntervalRecorderService private lateinit var cycleTimer: ScheduledExecutorService - var batchesFolder: BatchesFolder = BatchesFolder.viaInternalFolder(this) + abstract var batchesFolder: BatchesFolder var onCustomOutputFolderNotAccessible: () -> Unit = {} @@ -54,10 +40,8 @@ abstract class IntervalRecorderService override fun start() { batchesFolder.initFolders() if (!batchesFolder.checkIfFolderIsAccessible()) { - batchesFolder = - BatchesFolder.viaInternalFolder(this@IntervalRecorderService) - batchesFolder.initFolders() onCustomOutputFolderNotAccessible() + return } createTimer() diff --git a/app/src/main/java/app/myzel394/alibi/services/VideoRecorderService.kt b/app/src/main/java/app/myzel394/alibi/services/VideoRecorderService.kt index 4e622bc..d593e0c 100644 --- a/app/src/main/java/app/myzel394/alibi/services/VideoRecorderService.kt +++ b/app/src/main/java/app/myzel394/alibi/services/VideoRecorderService.kt @@ -13,6 +13,8 @@ import androidx.camera.video.VideoCapture import androidx.core.content.ContextCompat import app.myzel394.alibi.db.AppSettings import app.myzel394.alibi.db.RecordingInformation +import app.myzel394.alibi.helpers.BatchesFolder +import app.myzel394.alibi.helpers.VideoBatchesFolder import kotlinx.coroutines.CompletableDeferred import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Dispatchers @@ -23,6 +25,8 @@ import kotlinx.coroutines.withContext class VideoRecorderService : IntervalRecorderService() { + override var batchesFolder: BatchesFolder = VideoBatchesFolder.viaInternalFolder(this) + private val job = SupervisorJob() private val scope = CoroutineScope(Dispatchers.IO + job) diff --git a/app/src/main/java/app/myzel394/alibi/ui/models/AudioRecorderModel.kt b/app/src/main/java/app/myzel394/alibi/ui/models/AudioRecorderModel.kt index dd633e7..291dd84 100644 --- a/app/src/main/java/app/myzel394/alibi/ui/models/AudioRecorderModel.kt +++ b/app/src/main/java/app/myzel394/alibi/ui/models/AudioRecorderModel.kt @@ -15,6 +15,7 @@ import androidx.lifecycle.ViewModel import app.myzel394.alibi.db.AppSettings import app.myzel394.alibi.db.RecordingInformation import app.myzel394.alibi.enums.RecorderState +import app.myzel394.alibi.helpers.AudioBatchesFolder import app.myzel394.alibi.helpers.AudioRecorderExporter import app.myzel394.alibi.helpers.BatchesFolder import app.myzel394.alibi.services.AudioRecorderService @@ -67,9 +68,9 @@ class AudioRecorderModel : override fun startRecording(context: Context, settings: AppSettings) { batchesFolder = if (settings.audioRecorderSettings.saveFolder == null) - BatchesFolder.viaInternalFolder(context) + AudioBatchesFolder.viaInternalFolder(context) else - BatchesFolder.viaCustomFolder( + AudioBatchesFolder.viaCustomFolder( context, DocumentFile.fromTreeUri( context, @@ -95,6 +96,8 @@ class AudioRecorderModel : recorderService!!.changeMicrophone(microphone) if (microphone == null) { + // Microphone was reset to default, + // default is always assumed to be connected microphoneStatus = MicrophoneConnectivityStatus.CONNECTED } } diff --git a/app/src/main/java/app/myzel394/alibi/ui/models/BaseRecorderModel.kt b/app/src/main/java/app/myzel394/alibi/ui/models/BaseRecorderModel.kt index 0d0d099..1b3c104 100644 --- a/app/src/main/java/app/myzel394/alibi/ui/models/BaseRecorderModel.kt +++ b/app/src/main/java/app/myzel394/alibi/ui/models/BaseRecorderModel.kt @@ -66,7 +66,10 @@ abstract class BaseRecorderModel