mirror of
https://github.com/Myzel394/Alibi.git
synced 2025-06-18 23:05:26 +02:00
feat: Add custom VideoBatchesFolder support to VideoRecorderModel
This commit is contained in:
parent
029d9fe302
commit
06f2e1de5e
@ -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
|
||||||
|
Loading…
x
Reference in New Issue
Block a user