chore: Rename VideoService -> VideoRecorderService

This commit is contained in:
Myzel394 2023-11-26 22:26:51 +01:00
parent a5a93cedc9
commit f75a1a8a33
No known key found for this signature in database
GPG Key ID: 79CC92F37B3E1A2B
3 changed files with 14 additions and 28 deletions

View File

@ -2,6 +2,10 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android" <manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"> xmlns:tools="http://schemas.android.com/tools">
<uses-feature
android:name="android.hardware.camera"
android:required="false" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" /> <uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
<uses-permission android:name="android.permission.RECORD_AUDIO" /> <uses-permission android:name="android.permission.RECORD_AUDIO" />
@ -52,7 +56,7 @@
android:name=".services.AudioRecorderService" android:name=".services.AudioRecorderService"
android:foregroundServiceType="microphone" /> android:foregroundServiceType="microphone" />
<service <service
android:name=".services.VideoService" android:name=".services.VideoRecorderService"
android:foregroundServiceType="camera|microphone" /> android:foregroundServiceType="camera|microphone" />
<!-- Change locale for Android <= 12 --> <!-- Change locale for Android <= 12 -->

View File

@ -1,26 +1,16 @@
package app.myzel394.alibi.services package app.myzel394.alibi.services
import android.annotation.SuppressLint import android.annotation.SuppressLint
import android.content.ContentValues
import android.content.pm.ServiceInfo
import android.os.Build
import android.provider.MediaStore
import androidx.camera.core.CameraSelector import androidx.camera.core.CameraSelector
import androidx.camera.lifecycle.ProcessCameraProvider import androidx.camera.lifecycle.ProcessCameraProvider
import androidx.camera.video.FileOutputOptions import androidx.camera.video.FileOutputOptions
import androidx.camera.video.MediaStoreOutputOptions
import androidx.camera.video.Quality import androidx.camera.video.Quality
import androidx.camera.video.QualitySelector import androidx.camera.video.QualitySelector
import androidx.camera.video.Recorder import androidx.camera.video.Recorder
import androidx.camera.video.Recording import androidx.camera.video.Recording
import androidx.camera.video.VideoCapture import androidx.camera.video.VideoCapture
import androidx.camera.video.VideoCapture.withOutput import androidx.camera.video.VideoCapture.withOutput
import androidx.core.app.NotificationCompat
import androidx.core.app.ServiceCompat
import androidx.core.content.ContextCompat import androidx.core.content.ContextCompat
import androidx.core.net.toUri
import androidx.lifecycle.LifecycleService
import app.myzel394.alibi.NotificationHelper
import app.myzel394.alibi.db.RecordingInformation import app.myzel394.alibi.db.RecordingInformation
import kotlinx.coroutines.CompletableDeferred import kotlinx.coroutines.CompletableDeferred
import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.CoroutineScope
@ -28,12 +18,10 @@ import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.SupervisorJob import kotlinx.coroutines.SupervisorJob
import kotlinx.coroutines.launch import kotlinx.coroutines.launch
import kotlinx.coroutines.withContext import kotlinx.coroutines.withContext
import java.util.concurrent.Executors
import java.util.concurrent.ScheduledExecutorService
import java.util.concurrent.TimeUnit
class VideoService : IntervalRecorderService<VideoService.Settings, RecordingInformation>() { class VideoRecorderService :
IntervalRecorderService<VideoRecorderService.Settings, RecordingInformation>() {
private val job = SupervisorJob() private val job = SupervisorJob()
private val scope = CoroutineScope(Dispatchers.IO + job) private val scope = CoroutineScope(Dispatchers.IO + job)
@ -56,7 +44,7 @@ class VideoService : IntervalRecorderService<VideoService.Settings, RecordingInf
// This should only be called when starting a recording. // This should only be called when starting a recording.
private suspend fun openCamera() { private suspend fun openCamera() {
cameraProvider = withContext(Dispatchers.IO) { cameraProvider = withContext(Dispatchers.IO) {
ProcessCameraProvider.getInstance(this@VideoService).get() ProcessCameraProvider.getInstance(this@VideoRecorderService).get()
} }
val recorder = Recorder.Builder() val recorder = Recorder.Builder()
@ -159,7 +147,7 @@ class VideoService : IntervalRecorderService<VideoService.Settings, RecordingInf
val fileExtension val fileExtension
get() = "mp4" get() = "mp4"
fun getOutputOptions(video: VideoService): FileOutputOptions { fun getOutputOptions(video: VideoRecorderService): FileOutputOptions {
val fileName = "${video.counter}.$fileExtension" val fileName = "${video.counter}.$fileExtension"
val file = video.batchesFolder.getInternalFolder().resolve(fileName).apply { val file = video.batchesFolder.getInternalFolder().resolve(fileName).apply {
createNewFile() createNewFile()

View File

@ -1,20 +1,14 @@
package app.myzel394.alibi.ui.models package app.myzel394.alibi.ui.models
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.setValue
import androidx.lifecycle.ViewModel
import app.myzel394.alibi.db.RecordingInformation import app.myzel394.alibi.db.RecordingInformation
import app.myzel394.alibi.enums.RecorderState import app.myzel394.alibi.services.VideoRecorderService
import app.myzel394.alibi.services.AudioRecorderService
import app.myzel394.alibi.services.VideoService
class VideoRecorderModel : class VideoRecorderModel :
BaseRecorderModel<VideoService.Settings, RecordingInformation, VideoService>() { BaseRecorderModel<VideoRecorderService.Settings, RecordingInformation, VideoRecorderService>() {
override val intentClass = VideoService::class.java override val intentClass = VideoRecorderService::class.java
override fun onServiceConnected(service: VideoService) { override fun onServiceConnected(service: VideoRecorderService) {
service.settings = VideoService.Settings.from() service.settings = VideoRecorderService.Settings.from()
service.clearAllRecordings() service.clearAllRecordings()
service.startRecording() service.startRecording()