From 63b6510d2f4fc469970e38eee1f0d5d1d1fd03eb Mon Sep 17 00:00:00 2001 From: Benjamin Reis Date: Tue, 13 Feb 2018 10:37:58 +0100 Subject: [PATCH] do not create one to one chat room with someone if one alredy exists --- Classes/ChatConversationCreateView.m | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/Classes/ChatConversationCreateView.m b/Classes/ChatConversationCreateView.m index 25ce038f6..2d4a583f2 100644 --- a/Classes/ChatConversationCreateView.m +++ b/Classes/ChatConversationCreateView.m @@ -82,10 +82,19 @@ static UICompositeViewDescription *compositeDescription = nil; - (void)createChatRoom { NSString *addr = _tableController.contactsGroup[0]; + const LinphoneAddress *local = linphone_proxy_config_get_contact(linphone_core_get_default_proxy_config(LC)); LinphoneAddress *linphoneAddress = linphone_address_new(addr.UTF8String); - bctbx_list_t *addresses = bctbx_list_new((void *)linphoneAddress); - [PhoneMainView.instance createChatRoomWithSubject:LINPHONE_DUMMY_SUBJECT addresses:addresses andWaitView:_waitView]; - bctbx_list_free_with_data(addresses, (void (*)(void *))linphone_address_unref); + LinphoneChatRoom *room = linphone_core_find_one_to_one_chat_room(LC, local, linphoneAddress); + if (!room) { + bctbx_list_t *addresses = bctbx_list_new((void*)linphoneAddress); + [PhoneMainView.instance createChatRoomWithSubject:LINPHONE_DUMMY_SUBJECT addresses:addresses andWaitView:_waitView]; + bctbx_list_free_with_data(addresses, (void (*)(void *))linphone_address_unref); + return; + } + ChatConversationView *view = VIEW(ChatConversationView); + [view setChatRoom:room]; + [PhoneMainView.instance changeCurrentView:view.compositeViewDescription]; + linphone_address_destroy(linphoneAddress); } #pragma mark - Buttons signals