diff --git a/Classes/Swift/Voip/Views/CompositeViewControllers/AbstractCallView.swift b/Classes/Swift/Voip/Views/CompositeViewControllers/AbstractCallView.swift index 48d1368bd..1178c9883 100644 --- a/Classes/Swift/Voip/Views/CompositeViewControllers/AbstractCallView.swift +++ b/Classes/Swift/Voip/Views/CompositeViewControllers/AbstractCallView.swift @@ -61,10 +61,12 @@ import linphonesw // Calls List - ControlsViewModel.shared.goToCallsListEvent.observe { (_) in - self.dismissableView = CallsListView() - self.view.addSubview(self.dismissableView!) - self.dismissableView?.matchParentDimmensions().done() + ControlsViewModel.shared.goToCallsListEvent.observe { _ in + if (self.view.superview != nil) { + self.dismissableView = CallsListView() + self.view.addSubview(self.dismissableView!) + self.dismissableView?.matchParentDimmensions().done() + } } // Goto chat diff --git a/Classes/Swift/Voip/Views/Fragments/ActiveCall/ActiveCallView.swift b/Classes/Swift/Voip/Views/Fragments/ActiveCall/ActiveCallView.swift index 8d1361523..93c8ccb41 100644 --- a/Classes/Swift/Voip/Views/Fragments/ActiveCall/ActiveCallView.swift +++ b/Classes/Swift/Voip/Views/Fragments/ActiveCall/ActiveCallView.swift @@ -197,7 +197,7 @@ class ActiveCallView: UIView { // = currentCall ControlsViewModel.shared.toggleFullScreen() } ControlsViewModel.shared.fullScreenMode.observe { (fullScreen) in - if (self.isHidden) { + if (self.superview?.superview?.superview == nil) { return } self.remoteVideo.removeConstraints().done() diff --git a/Classes/Swift/Voip/Views/Fragments/Conference/VoipConferenceActiveSpeakerView.swift b/Classes/Swift/Voip/Views/Fragments/Conference/VoipConferenceActiveSpeakerView.swift index 6ecf4bdf9..e57a0708d 100644 --- a/Classes/Swift/Voip/Views/Fragments/Conference/VoipConferenceActiveSpeakerView.swift +++ b/Classes/Swift/Voip/Views/Fragments/Conference/VoipConferenceActiveSpeakerView.swift @@ -336,7 +336,7 @@ class VoipConferenceActiveSpeakerView: UIView, UICollectionViewDataSource, UICol } ControlsViewModel.shared.fullScreenMode.observe { (fullScreen) in - if (self.isHidden) { + if (self.superview?.superview?.superview == nil || self.conferenceViewModel?.conference.value?.call?.params?.conferenceVideoLayout != .ActiveSpeaker) { return } fullScreenMutableView.removeConstraints().done() diff --git a/Classes/Swift/Voip/Views/Fragments/Conference/VoipConferenceGridView.swift b/Classes/Swift/Voip/Views/Fragments/Conference/VoipConferenceGridView.swift index c5c34e5bc..c68c81c68 100644 --- a/Classes/Swift/Voip/Views/Fragments/Conference/VoipConferenceGridView.swift +++ b/Classes/Swift/Voip/Views/Fragments/Conference/VoipConferenceGridView.swift @@ -163,7 +163,7 @@ class VoipConferenceGridView: UIView, UICollectionViewDataSource, UICollectionVi } ControlsViewModel.shared.fullScreenMode.observe { (fullScreen) in - if (self.isHidden || self.conferenceViewModel?.conference.value?.call?.params?.conferenceVideoLayout != .Grid) { + if (self.superview?.superview?.superview == nil || self.conferenceViewModel?.conference.value?.call?.params?.conferenceVideoLayout != .Grid) { return } self.gridContainer.removeConstraints().done()