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));