diff --git a/Linphone/UI/Main/Meetings/Fragments/MeetingsFragment.swift b/Linphone/UI/Main/Meetings/Fragments/MeetingsFragment.swift index a012c8bdd..0c74e175c 100644 --- a/Linphone/UI/Main/Meetings/Fragments/MeetingsFragment.swift +++ b/Linphone/UI/Main/Meetings/Fragments/MeetingsFragment.swift @@ -144,7 +144,6 @@ struct MeetingsFragment: View { } .onReceive(NotificationCenter.default.publisher(for: MeetingsListViewModel.ScrollToTodayNotification)) { _ in withAnimation { - Log.info("debugtrace - List ScrollToTodayNotification") proxyReader.scrollTo(meetingsListViewModel.todayIdx) } } diff --git a/Linphone/UI/Main/Meetings/ViewModel/MeetingViewModel.swift b/Linphone/UI/Main/Meetings/ViewModel/MeetingViewModel.swift index 937940dcb..517b5d788 100644 --- a/Linphone/UI/Main/Meetings/ViewModel/MeetingViewModel.swift +++ b/Linphone/UI/Main/Meetings/ViewModel/MeetingViewModel.swift @@ -145,7 +145,8 @@ class MeetingViewModel: ObservableObject { confInfo.participantInfos = participantsInfoList } - private func initConferenceSchedulerAndListeners(core: Core) { + private func resetConferenceSchedulerAndListeners(core: Core) { + self.mSchedulerSubscriptions.removeAll() self.conferenceScheduler = try? core.createConferenceScheduler() self.mSchedulerSubscriptions.insert(self.conferenceScheduler?.publisher?.onStateChanged?.postOnCoreQueue { (cbVal: (conferenceScheduler: ConferenceScheduler, state: ConferenceScheduler.State)) in @@ -220,13 +221,11 @@ class MeetingViewModel: ObservableObject { CoreContext.shared.doOnCoreQueue { core in Log.info("\(MeetingViewModel.TAG) Scheduling \(self.isBroadcastSelected ? "broadcast" : "meeting")") - if let conferenceInfo = self.displayedMeeting != nil ? self.displayedMeeting!.confInfo : try? Factory.Instance.createConferenceInfo() { + if let conferenceInfo = (self.displayedMeeting != nil ? self.displayedMeeting!.confInfo : try? Factory.Instance.createConferenceInfo()) { let localAccount = core.defaultAccount conferenceInfo.organizer = localAccount?.params?.identityAddress self.fillConferenceInfo(confInfo: conferenceInfo) - if self.conferenceScheduler == nil { - self.initConferenceSchedulerAndListeners(core: core) - } + self.resetConferenceSchedulerAndListeners(core: core) self.conferenceScheduler?.account = localAccount // Will trigger the conference creation automatically self.conferenceScheduler?.info = conferenceInfo @@ -241,9 +240,7 @@ class MeetingViewModel: ObservableObject { if let conferenceInfo = self.conferenceInfoToEdit { self.fillConferenceInfo(confInfo: conferenceInfo) - if self.conferenceScheduler == nil { - self.initConferenceSchedulerAndListeners(core: core) - } + self.resetConferenceSchedulerAndListeners(core: core) // Will trigger the conference update automatically self.conferenceScheduler?.info = conferenceInfo