diff --git a/app/src/main/java/org/linphone/core/CoreContext.kt b/app/src/main/java/org/linphone/core/CoreContext.kt index 577dac0e8..36c7c27f1 100644 --- a/app/src/main/java/org/linphone/core/CoreContext.kt +++ b/app/src/main/java/org/linphone/core/CoreContext.kt @@ -1229,4 +1229,26 @@ class CoreContext } } } + + fun setBackCamera(): Boolean { + for (camera in core.videoDevicesList) { + if (camera.contains("Back")) { + Log.i("TAG Found back facing camera [$camera], using it") + coreContext.core.videoDevice = camera + return true + } + } + return false + } + + fun setFrontCamera(): Boolean { + for (camera in core.videoDevicesList) { + if (camera.contains("Front")) { + Log.i("$TAG Found front facing camera [$camera], using it") + coreContext.core.videoDevice = camera + return true + } + } + return false + } } diff --git a/app/src/main/java/org/linphone/ui/assistant/fragment/QrCodeScannerFragment.kt b/app/src/main/java/org/linphone/ui/assistant/fragment/QrCodeScannerFragment.kt index 566d9094d..8a7c49b1a 100644 --- a/app/src/main/java/org/linphone/ui/assistant/fragment/QrCodeScannerFragment.kt +++ b/app/src/main/java/org/linphone/ui/assistant/fragment/QrCodeScannerFragment.kt @@ -147,6 +147,8 @@ class QrCodeScannerFragment : GenericFragment() { core.nativePreviewWindowId = null core.isVideoPreviewEnabled = false core.isQrcodeVideoPreviewEnabled = false + + coreContext.setFrontCamera() } super.onPause() diff --git a/app/src/main/java/org/linphone/ui/assistant/viewmodel/QrCodeViewModel.kt b/app/src/main/java/org/linphone/ui/assistant/viewmodel/QrCodeViewModel.kt index 6f986194e..e0de49fbc 100644 --- a/app/src/main/java/org/linphone/ui/assistant/viewmodel/QrCodeViewModel.kt +++ b/app/src/main/java/org/linphone/ui/assistant/viewmodel/QrCodeViewModel.kt @@ -122,23 +122,17 @@ class QrCodeViewModel // this is required right after granting the CAMERA permission core.reloadVideoDevices() - for (camera in core.videoDevicesList) { - if (camera.contains("Back")) { - Log.i("$TAG Found back facing camera [$camera], using it") - coreContext.core.videoDevice = camera - return@postOnCoreThread + if (!coreContext.setBackCamera()) { + for (camera in core.videoDevicesList) { + if (camera != "StaticImage: Static picture") { + Log.w("$TAG No back facing camera found, using first one available [$camera]") + coreContext.core.videoDevice = camera + return@postOnCoreThread + } } - } - for (camera in core.videoDevicesList) { - if (camera != "StaticImage: Static picture") { - Log.w("$TAG No back facing camera found, using first one available [$camera]") - coreContext.core.videoDevice = camera - return@postOnCoreThread - } + Log.e("$TAG No camera device found!") } - - Log.e("$TAG No camera device found!") } } } diff --git a/app/src/main/java/org/linphone/ui/main/meetings/viewmodel/MeetingWaitingRoomViewModel.kt b/app/src/main/java/org/linphone/ui/main/meetings/viewmodel/MeetingWaitingRoomViewModel.kt index 3a76ef481..85017ef10 100644 --- a/app/src/main/java/org/linphone/ui/main/meetings/viewmodel/MeetingWaitingRoomViewModel.kt +++ b/app/src/main/java/org/linphone/ui/main/meetings/viewmodel/MeetingWaitingRoomViewModel.kt @@ -212,18 +212,16 @@ class MeetingWaitingRoomViewModel @UiThread fun setFrontCamera() { coreContext.postOnCoreThread { core -> - for (camera in core.videoDevicesList) { - if (camera.contains("Front")) { - Log.i("$TAG Found front facing camera [$camera], using it") - coreContext.core.videoDevice = camera - return@postOnCoreThread + if (!coreContext.setFrontCamera()) { + for (camera in core.videoDevicesList) { + if (camera != "StaticImage: Static picture") { + Log.w("$TAG No front facing camera found, using first one available [$camera]") + coreContext.core.videoDevice = camera + return@postOnCoreThread + } } - } - val first = core.videoDevicesList.firstOrNull() - if (first != null) { - Log.w("$TAG No front facing camera found, using first one available [$first]") - coreContext.core.videoDevice = first + Log.e("$TAG No camera device found!") } } }