From b9c7058b26789691128a3f9483236ab59f8963dd Mon Sep 17 00:00:00 2001
From: agsantos <aline.gondimsantos@savoirfairelinux.com>
Date: Mon, 8 Nov 2021 15:41:41 -0500
Subject: [PATCH] calls: hide preview if camera stream and no device available

+ remove record video message if no video device available

Change-Id: I35c15709ecd5159dfa02ebcbf7aacd0bbf3d54e9
---
 src/mainview/components/MessageBar.qml        |  1 +
 src/mainview/components/OngoingCallPage.qml   | 20 ++-----------------
 src/mainview/components/ParticipantsLayer.qml |  2 --
 3 files changed, 3 insertions(+), 20 deletions(-)

diff --git a/src/mainview/components/MessageBar.qml b/src/mainview/components/MessageBar.qml
index a68e0dfd1..ed56cd206 100644
--- a/src/mainview/components/MessageBar.qml
+++ b/src/mainview/components/MessageBar.qml
@@ -113,6 +113,7 @@ ColumnLayout {
             Layout.alignment: Qt.AlignVCenter
             Layout.preferredWidth: JamiTheme.chatViewFooterButtonSize
             Layout.preferredHeight: JamiTheme.chatViewFooterButtonSize
+            visible: VideoDevices.listSize !== 0
 
             radius: JamiTheme.chatViewFooterButtonRadius
             preferredSize: JamiTheme.chatViewFooterButtonIconSize
diff --git a/src/mainview/components/OngoingCallPage.qml b/src/mainview/components/OngoingCallPage.qml
index 4a6908c5b..f2905207a 100644
--- a/src/mainview/components/OngoingCallPage.qml
+++ b/src/mainview/components/OngoingCallPage.qml
@@ -179,24 +179,8 @@ Rectangle {
                     id: previewRenderer
 
                     lrcInstance: LRCInstance
-                    visible: !callOverlay.isAudioOnly && !callOverlay.isConferenceCall && !callOverlay.isVideoMuted && !callOverlay.isPaused
-
-                    Connections {
-                        target: CallAdapter
-
-                        function onPreviewVisibilityNeedToChange(visible) {
-                            previewRenderer.visible = visible
-                        }
-                    }
-
-                    Connections {
-                        target: VideoDevices
-
-                        // TODO: previewRenderer visible should be listening to a property
-                        function onDeviceListChanged() {
-                            previewRenderer.visible = VideoDevices.listSize !== 0
-                        }
-                    }
+                    visible: !callOverlay.isAudioOnly && !callOverlay.isConferenceCall && !callOverlay.isVideoMuted && !callOverlay.isPaused &&
+                             ((VideoDevices.listSize !== 0 && AvAdapter.currentRenderingDeviceType === Video.DeviceType.CAMERA) || AvAdapter.currentRenderingDeviceType !== Video.DeviceType.CAMERA )
 
                     width: Math.max(callPageMainRect.width / 5, JamiTheme.minimumPreviewWidth)
                     x: callPageMainRect.width - previewRenderer.width - previewMargin
diff --git a/src/mainview/components/ParticipantsLayer.qml b/src/mainview/components/ParticipantsLayer.qml
index f54ac0df5..b29320567 100644
--- a/src/mainview/components/ParticipantsLayer.qml
+++ b/src/mainview/components/ParticipantsLayer.qml
@@ -90,7 +90,6 @@ Item {
         participantOverlays = participantOverlays.filter(part => !deletedUris.includes(part.uri))
 
         if (infos.length === 0) { // Return to normal call
-            previewRenderer.visible = !isAudioOnly && !isVideoMuted && !isConferenceCall && !isPaused
             for (var part in participantOverlays) {
                 if (participantOverlays[part]) {
                     participantOverlays[part].destroy()
@@ -98,7 +97,6 @@ Item {
             }
             participantOverlays = []
         } else {
-            previewRenderer.visible = false
             for (var infoVariant in infos) {
                 // Only create overlay for new participants
                 if (!currentUris.includes(infos[infoVariant].uri)) {
-- 
GitLab