From 00144598dbc7bfb6a3c646917ab2828fa62b5425 Mon Sep 17 00:00:00 2001 From: Danmei Chen Date: Tue, 15 Feb 2022 11:05:03 +0100 Subject: [PATCH] fix reply message in basic chat rooms --- Classes/ChatConversationView.m | 6 ++++-- Classes/Utils/FileTransferDelegate.m | 14 ++++++++------ 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/Classes/ChatConversationView.m b/Classes/ChatConversationView.m index 5c3d8a8ed..aeccd7833 100644 --- a/Classes/ChatConversationView.m +++ b/Classes/ChatConversationView.m @@ -529,7 +529,9 @@ static UICompositeViewDescription *compositeDescription = nil; LinphoneChatMessage *msg = rootMessage; BOOL basic = [ChatConversationView isBasicChatRoom:_chatRoom]; - if (!basic && message && message.length > 0) { + const LinphoneAccountParams *params = linphone_account_get_params(linphone_core_get_default_account(LC)); + BOOL cpimEnabled = linphone_account_params_cpim_in_basic_chat_room_enabled(params); + if ((!basic || cpimEnabled) && message && message.length > 0) { linphone_chat_message_add_utf8_text_content(msg, message.UTF8String); } @@ -542,7 +544,7 @@ static UICompositeViewDescription *compositeDescription = nil; linphone_chat_message_send(msg); } - if (basic && message && message.length > 0) { + if (basic && !cpimEnabled && message && message.length > 0) { linphone_chat_message_send(linphone_chat_room_create_message_from_utf8(_chatRoom, message.UTF8String)); } diff --git a/Classes/Utils/FileTransferDelegate.m b/Classes/Utils/FileTransferDelegate.m index a8d52941e..85996c87a 100644 --- a/Classes/Utils/FileTransferDelegate.m +++ b/Classes/Utils/FileTransferDelegate.m @@ -117,10 +117,11 @@ static void file_transfer_progress_indication_send(LinphoneChatMessage *message, linphone_content_set_file_path(content, [[LinphoneManager imagesDirectory] stringByAppendingPathComponent:name].UTF8String); _message = rootMessage? : linphone_chat_room_create_empty_message(chatRoom); linphone_chat_message_add_file_content(_message, content); - BOOL isOneToOneChat = linphone_chat_room_get_capabilities(chatRoom) & LinphoneChatRoomCapabilitiesOneToOne; + const LinphoneAccountParams *params = linphone_account_get_params(linphone_core_get_default_account(LC)); + BOOL cpimEnabled = linphone_account_params_cpim_in_basic_chat_room_enabled(params); BOOL basic = [ChatConversationView isBasicChatRoom:linphone_chat_message_get_chat_room(_message)]; - if (!basic && !isOneToOneChat && (_text!=nil && ![_text isEqualToString:@""])) + if ((!basic || cpimEnabled) && (_text!=nil && ![_text isEqualToString:@""])) linphone_chat_message_add_utf8_text_content(_message, [_text UTF8String]); linphone_content_unref(content); @@ -132,7 +133,7 @@ static void file_transfer_progress_indication_send(LinphoneChatMessage *message, LOGI(@"%p Uploading content from message %p", self, _message); linphone_chat_message_send(_message); - if (basic && !isOneToOneChat && (_text!=nil && ![_text isEqualToString:@""])) { + if (basic && !cpimEnabled && (_text!=nil && ![_text isEqualToString:@""])) { linphone_chat_message_send(linphone_chat_room_create_message_from_utf8(linphone_chat_message_get_chat_room(rootMessage), _text.UTF8String)); } } @@ -165,9 +166,10 @@ static void file_transfer_progress_indication_send(LinphoneChatMessage *message, } BOOL basic = [ChatConversationView isBasicChatRoom:linphone_chat_message_get_chat_room(rootMessage)]; + const LinphoneAccountParams *params = linphone_account_get_params(linphone_core_get_default_account(LC)); + BOOL cpimEnabled = linphone_account_params_cpim_in_basic_chat_room_enabled(params); - - if (!basic && _text!=nil && ![_text isEqualToString:@""]) + if ((!basic || cpimEnabled) && _text!=nil && ![_text isEqualToString:@""]) linphone_chat_message_add_utf8_text_content(_message, [_text UTF8String]); // todo indication progress @@ -176,7 +178,7 @@ static void file_transfer_progress_indication_send(LinphoneChatMessage *message, LOGI(@"%p Uploading content from message %p", self, _message); linphone_chat_message_send(_message); - if (basic && _text!=nil && ![_text isEqualToString:@""]) { + if (basic && !cpimEnabled && _text!=nil && ![_text isEqualToString:@""]) { linphone_chat_message_send(linphone_chat_room_create_message_from_utf8(linphone_chat_message_get_chat_room(rootMessage), _text.UTF8String)); } }