diff --git a/Linphone/UI/Main/Meetings/Fragments/MeetingFragment.swift b/Linphone/UI/Main/Meetings/Fragments/MeetingFragment.swift index 5a597944a..4115036e5 100644 --- a/Linphone/UI/Main/Meetings/Fragments/MeetingFragment.swift +++ b/Linphone/UI/Main/Meetings/Fragments/MeetingFragment.swift @@ -111,7 +111,13 @@ struct MeetingFragment: View { Button(role: .destructive) { withAnimation { meetingsListViewModel.selectedMeetingToDelete = meetingViewModel.displayedMeeting - isShowSendCancelMeetingNotificationPopup.toggle() + if let myself = meetingViewModel.myself, myself.isOrganizer == true { + isShowSendCancelMeetingNotificationPopup.toggle() + } else { + // If we're not organizer, directly delete the conference + meetingViewModel.displayedMeeting = nil + meetingsListViewModel.deleteSelectedMeeting() + } } } label: { HStack { diff --git a/Linphone/UI/Main/Meetings/Fragments/MeetingsListBottomSheet.swift b/Linphone/UI/Main/Meetings/Fragments/MeetingsListBottomSheet.swift index 1f609e1e8..dd56924e0 100644 --- a/Linphone/UI/Main/Meetings/Fragments/MeetingsListBottomSheet.swift +++ b/Linphone/UI/Main/Meetings/Fragments/MeetingsListBottomSheet.swift @@ -56,10 +56,13 @@ struct MeetingsListBottomSheet: View { CoreContext.shared.doOnCoreQueue { core in if let organizerUri = self.meetingsListViewModel.selectedMeetingToDelete?.confInfo.organizer { if core.defaultAccount?.contactAddress?.weakEqual(address2: organizerUri) ?? false { + // If we are the organizer, display popup for sending DispatchQueue.main.async { - // If we are the organizer, display popup for sending self.isShowSendCancelMeetingNotificationPopup = true } + } else { + // If we are not the organizer, delete meeting locally without popup + meetingsListViewModel.deleteSelectedMeeting() } } }