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.Manifest
import android.content.Context import android.content.Context
import android.content.Intent import android.content.Intent
import android.net.Uri
import androidx.camera.core.CameraSelector import androidx.camera.core.CameraSelector
import androidx.compose.runtime.getValue import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableIntStateOf import androidx.compose.runtime.mutableIntStateOf
import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.setValue 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.db.RecordingInformation
import app.myzel394.alibi.enums.RecorderState 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.helpers.VideoBatchesFolder
import app.myzel394.alibi.services.VideoRecorderService import app.myzel394.alibi.services.VideoRecorderService
import app.myzel394.alibi.ui.utils.CameraInfo import app.myzel394.alibi.ui.utils.CameraInfo
import app.myzel394.alibi.ui.utils.PermissionHelper import app.myzel394.alibi.ui.utils.PermissionHelper
class VideoRecorderModel : class VideoRecorderModel :
BaseRecorderModel<RecordingInformation, VideoRecorderService, VideoBatchesFolder?>() { BaseRecorderModel<RecordingInformation, VideoBatchesFolder, VideoRecorderService>() {
override var batchesFolder: VideoBatchesFolder? = null override var batchesFolder: VideoBatchesFolder? = null
override val intentClass = VideoRecorderService::class.java override val intentClass = VideoRecorderService::class.java
@ -37,6 +42,21 @@ class VideoRecorderModel :
cameraID = CameraInfo.Lens.BACK.androidValue 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) { override fun onServiceConnected(service: VideoRecorderService) {
// `onServiceConnected` may be called when reconnecting to the service, // `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 // so we only want to actually start the recording if the service is idle and thus