@@ -24,6 +24,7 @@ import kotlinx.coroutines.flow.mapLatest
2424import kotlinx.coroutines.flow.shareIn
2525import org.lineageos.aperture.ext.permissionGranted
2626import org.lineageos.aperture.models.Camera
27+ import org.lineageos.aperture.models.CameraFacing
2728
2829/* *
2930 * Repository that provides camera devices.
@@ -63,13 +64,13 @@ class CameraRepository(
6364
6465 val mainBackCamera by lazy {
6566 internalCameras.firstOrNull { camera ->
66- camera.cameraId == DEFAULT_BACK_CAMERA_ID
67+ camera.cameraFacing == CameraFacing . BACK
6768 }
6869 }
6970
7071 val mainFrontCamera by lazy {
7172 internalCameras.firstOrNull { camera ->
72- camera.cameraId == DEFAULT_FRONT_CAMERA_ID
73+ camera.cameraFacing == CameraFacing . FRONT
7374 }
7475 }
7576
@@ -115,17 +116,7 @@ class CameraRepository(
115116 val camera2CameraInfo = Camera2CameraInfo .from(this )
116117
117118 return when (camera2CameraInfo.cameraId) {
118- DEFAULT_BACK_CAMERA_ID -> true .also {
119- require(lensFacing == CameraSelector .LENS_FACING_BACK ) {
120- " Camera with ID ${camera2CameraInfo.cameraId} is not a back camera"
121- }
122- }
123-
124- DEFAULT_FRONT_CAMERA_ID -> true .also {
125- require(lensFacing == CameraSelector .LENS_FACING_FRONT ) {
126- " Camera with ID ${camera2CameraInfo.cameraId} is not a front camera"
127- }
128- }
119+ in mainCameraIds -> true
129120
130121 else -> {
131122 val isIgnoredAuxCamera = overlaysRepository.ignoredAuxCameraIds.contains(
@@ -154,7 +145,12 @@ class CameraRepository(
154145 ) { " Camera permission not granted" }
155146
156147 companion object {
157- private const val DEFAULT_BACK_CAMERA_ID = " 0"
158- private const val DEFAULT_FRONT_CAMERA_ID = " 1"
148+ /* *
149+ * List of main camera IDs. These should never be excluded.
150+ */
151+ private val mainCameraIds = setOf (
152+ " 0" ,
153+ " 1" ,
154+ )
159155 }
160156}
0 commit comments