diff --git a/app/src/main/java/org/linphone/activities/assistant/viewmodels/QrCodeViewModel.kt b/app/src/main/java/org/linphone/activities/assistant/viewmodels/QrCodeViewModel.kt index ec3743957..f693c3fa5 100644 --- a/app/src/main/java/org/linphone/activities/assistant/viewmodels/QrCodeViewModel.kt +++ b/app/src/main/java/org/linphone/activities/assistant/viewmodels/QrCodeViewModel.kt @@ -41,7 +41,7 @@ class QrCodeViewModel : ViewModel() { init { coreContext.core.addListener(listener) - showSwitchCamera.value = coreContext.core.videoDevicesList.size > 1 + showSwitchCamera.value = coreContext.showSwitchCameraButton() } override fun onCleared() { diff --git a/app/src/main/java/org/linphone/activities/call/viewmodels/ControlsViewModel.kt b/app/src/main/java/org/linphone/activities/call/viewmodels/ControlsViewModel.kt index 28d5a0e9f..bb4c65512 100644 --- a/app/src/main/java/org/linphone/activities/call/viewmodels/ControlsViewModel.kt +++ b/app/src/main/java/org/linphone/activities/call/viewmodels/ControlsViewModel.kt @@ -44,6 +44,8 @@ class ControlsViewModel : ViewModel() { val isVideoUpdateInProgress = MutableLiveData() + val showSwitchCamera = MutableLiveData() + val isPauseEnabled = MutableLiveData() val isRecording = MutableLiveData() @@ -129,6 +131,7 @@ class ControlsViewModel : ViewModel() { isRecording.value = currentCall?.isRecording isVideoUpdateInProgress.value = false + showSwitchCamera.value = coreContext.showSwitchCameraButton() updateUI() } diff --git a/app/src/main/java/org/linphone/activities/main/dialer/viewmodels/DialerViewModel.kt b/app/src/main/java/org/linphone/activities/main/dialer/viewmodels/DialerViewModel.kt index 7d765d83d..746576d4d 100644 --- a/app/src/main/java/org/linphone/activities/main/dialer/viewmodels/DialerViewModel.kt +++ b/app/src/main/java/org/linphone/activities/main/dialer/viewmodels/DialerViewModel.kt @@ -35,6 +35,8 @@ class DialerViewModel : ViewModel() { val showPreview = MutableLiveData() + val showSwitchCamera = MutableLiveData() + val onKeyClick: NumpadDigitListener = object : NumpadDigitListener { override fun handleClick(key: Char) { enteredUri.value += key.toString() @@ -73,6 +75,8 @@ class DialerViewModel : ViewModel() { enteredUri.value = "" atLeastOneCall.value = coreContext.core.callsNb > 0 transferVisibility.value = false + + showSwitchCamera.value = coreContext.showSwitchCameraButton() } override fun onCleared() { diff --git a/app/src/main/java/org/linphone/core/CoreContext.kt b/app/src/main/java/org/linphone/core/CoreContext.kt index 374b5204a..8b22909a4 100644 --- a/app/src/main/java/org/linphone/core/CoreContext.kt +++ b/app/src/main/java/org/linphone/core/CoreContext.kt @@ -363,6 +363,10 @@ class CoreContext(val context: Context, coreConfig: Config) { call.update(null) } + fun showSwitchCameraButton(): Boolean { + return core.videoDevicesList.orEmpty().size > 2 // Count StaticImage camera + } + fun createCallOverlay() { if (!corePreferences.showCallOverlay || callOverlay != null) { return diff --git a/app/src/main/res/layout-land/call_controls_fragment.xml b/app/src/main/res/layout-land/call_controls_fragment.xml index aee503d02..d4269271b 100644 --- a/app/src/main/res/layout-land/call_controls_fragment.xml +++ b/app/src/main/res/layout-land/call_controls_fragment.xml @@ -116,7 +116,7 @@