diff --git a/Classes/Swift/Voip/Views/Fragments/Conference/VoipConferenceActiveSpeakerView.swift b/Classes/Swift/Voip/Views/Fragments/Conference/VoipConferenceActiveSpeakerView.swift index 723d3f007..aa4cbc813 100644 --- a/Classes/Swift/Voip/Views/Fragments/Conference/VoipConferenceActiveSpeakerView.swift +++ b/Classes/Swift/Voip/Views/Fragments/Conference/VoipConferenceActiveSpeakerView.swift @@ -90,6 +90,9 @@ class VoipConferenceActiveSpeakerView: UIView, UICollectionViewDataSource, UICol } func reloadData() { + conferenceViewModel?.conferenceParticipantDevices.value?.forEach { + $0.clearObservers() + } self.grid.reloadData() } diff --git a/Classes/Swift/Voip/Views/Fragments/Conference/VoipConferenceGridView.swift b/Classes/Swift/Voip/Views/Fragments/Conference/VoipConferenceGridView.swift index d2394bec1..f8d863e5f 100644 --- a/Classes/Swift/Voip/Views/Fragments/Conference/VoipConferenceGridView.swift +++ b/Classes/Swift/Voip/Views/Fragments/Conference/VoipConferenceGridView.swift @@ -174,6 +174,9 @@ class VoipConferenceGridView: UIView, UICollectionViewDataSource, UICollectionVi // UICollectionView related delegates func reloadData() { + conferenceViewModel?.conferenceParticipantDevices.value?.forEach { + $0.clearObservers() + } if (self.isHidden || conferenceViewModel?.conference.value?.call?.params?.conferenceVideoLayout != .Grid) { self.grid.reloadData() return