feat: Add custom VideoBatchesFolder support to VideoRecorderModel

This commit is contained in:
Myzel394 2023-12-29 21:48:04 +01:00
parent 029d9fe302
commit 06f2e1de5e
No known key found for this signature in database
GPG Key ID: 79CC92F37B3E1A2B

View File

@ -3,20 +3,25 @@ package app.myzel394.alibi.ui.models
import android.Manifest
import android.content.Context
import android.content.Intent
import android.net.Uri
import androidx.camera.core.CameraSelector
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableIntStateOf
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.setValue
import androidx.documentfile.provider.DocumentFile
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.BatchesFolder
import app.myzel394.alibi.helpers.VideoBatchesFolder
import app.myzel394.alibi.services.VideoRecorderService
import app.myzel394.alibi.ui.utils.CameraInfo
import app.myzel394.alibi.ui.utils.PermissionHelper
class VideoRecorderModel :
BaseRecorderModel<RecordingInformation, VideoRecorderService, VideoBatchesFolder?>() {
BaseRecorderModel<RecordingInformation, VideoBatchesFolder, VideoRecorderService>() {
override var batchesFolder: VideoBatchesFolder? = null
override val intentClass = VideoRecorderService::class.java
@ -37,6 +42,21 @@ class VideoRecorderModel :
cameraID = CameraInfo.Lens.BACK.androidValue
}
override fun startRecording(context: Context, settings: AppSettings) {
batchesFolder = if (settings.saveFolder == null)
VideoBatchesFolder.viaInternalFolder(context)
else
VideoBatchesFolder.viaCustomFolder(
context,
DocumentFile.fromTreeUri(
context,
Uri.parse(settings.saveFolder)
)!!
)
super.startRecording(context, settings)
}
override fun onServiceConnected(service: VideoRecorderService) {
// `onServiceConnected` may be called when reconnecting to the service,
// so we only want to actually start the recording if the service is idle and thus