From b9ef7a83b5b0aeffd172eebca15ef2a975bdcabe Mon Sep 17 00:00:00 2001 From: QuentinArguillere Date: Fri, 7 Oct 2022 16:03:26 +0200 Subject: [PATCH] =?UTF-8?q?Go=20to=20chatrooms=20after=20receiving=20?= =?UTF-8?q?=E2=80=9Con=5Fconference=5Fjoined=E2=80=9D=20callback=20rather?= =?UTF-8?q?=20than=20when=20chatroom=20is=20created?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Classes/PhoneMainView.h | 1 + Classes/PhoneMainView.m | 32 +++++++++++++++++--------------- 2 files changed, 18 insertions(+), 15 deletions(-) diff --git a/Classes/PhoneMainView.h b/Classes/PhoneMainView.h index 672030668..6d5528569 100644 --- a/Classes/PhoneMainView.h +++ b/Classes/PhoneMainView.h @@ -123,3 +123,4 @@ @end void main_view_chat_room_state_changed(LinphoneChatRoom *cr, LinphoneChatRoomState newState); +void main_view_chat_room_conference_joined(LinphoneChatRoom *cr, const LinphoneEventLog *event_log); diff --git a/Classes/PhoneMainView.m b/Classes/PhoneMainView.m index 1d3393bd6..a64295b7f 100644 --- a/Classes/PhoneMainView.m +++ b/Classes/PhoneMainView.m @@ -884,6 +884,7 @@ static RootViewManager *rootViewManagerInstance = nil; LinphoneChatRoomCbs *cbs = linphone_factory_create_chat_room_cbs(linphone_factory_get()); linphone_chat_room_cbs_set_state_changed(cbs, main_view_chat_room_state_changed); + linphone_chat_room_cbs_set_conference_joined(cbs, main_view_chat_room_conference_joined); linphone_chat_room_add_callbacks(room, cbs); return room; @@ -908,24 +909,25 @@ static RootViewManager *rootViewManagerInstance = nil; [PhoneMainView.instance changeCurrentView:view.compositeViewDescription]; } +void main_view_chat_room_conference_joined(LinphoneChatRoom *cr, const LinphoneEventLog *event_log) { + PhoneMainView *view = PhoneMainView.instance; + LOGI(@"Chat room [%p] conference joined.", cr); + linphone_chat_room_remove_callbacks(cr, linphone_chat_room_get_current_callbacks(cr)); + [view goToChatRoom:cr]; + if (!IPAD) + return; + + if (PhoneMainView.instance.currentView != ChatsListView.compositeViewDescription && PhoneMainView.instance.currentView != ChatConversationView.compositeViewDescription) + return; + + ChatsListView *mainView = VIEW(ChatsListView); + [mainView.tableController loadData]; + [mainView.tableController selectFirstRow]; +} + void main_view_chat_room_state_changed(LinphoneChatRoom *cr, LinphoneChatRoomState newState) { PhoneMainView *view = PhoneMainView.instance; switch (newState) { - case LinphoneChatRoomStateCreated: { - LOGI(@"Chat room [%p] created on server.", cr); - linphone_chat_room_remove_callbacks(cr, linphone_chat_room_get_current_callbacks(cr)); - [view goToChatRoom:cr]; - if (!IPAD) - break; - - if (PhoneMainView.instance.currentView != ChatsListView.compositeViewDescription && PhoneMainView.instance.currentView != ChatConversationView.compositeViewDescription) - break; - - ChatsListView *mainView = VIEW(ChatsListView); - [mainView.tableController loadData]; - [mainView.tableController selectFirstRow]; - break; - } case LinphoneChatRoomStateCreationFailed: LOGE(@"Chat room [%p] could not be created on server.", cr); linphone_chat_room_remove_callbacks(cr, linphone_chat_room_get_current_callbacks(cr));