diff --git a/Classes/LinphoneUI/Base.lproj/UIChatReplyBubbleView.xib b/Classes/LinphoneUI/Base.lproj/UIChatReplyBubbleView.xib index 86911cf6e..8db8e4bf0 100644 --- a/Classes/LinphoneUI/Base.lproj/UIChatReplyBubbleView.xib +++ b/Classes/LinphoneUI/Base.lproj/UIChatReplyBubbleView.xib @@ -1,9 +1,9 @@ - + - + @@ -13,6 +13,7 @@ + @@ -68,6 +69,10 @@ + + + + @@ -77,6 +82,7 @@ + diff --git a/Classes/LinphoneUI/UIChatReplyBubbleView.h b/Classes/LinphoneUI/UIChatReplyBubbleView.h index b9c175ae2..81f8b7f8c 100644 --- a/Classes/LinphoneUI/UIChatReplyBubbleView.h +++ b/Classes/LinphoneUI/UIChatReplyBubbleView.h @@ -33,6 +33,7 @@ NS_ASSUME_NONNULL_BEGIN @property (weak, nonatomic) IBOutlet UICollectionView *contentCollection; @property NSArray *dataContent; @property (weak, nonatomic) IBOutlet UILabel *originalMessageGone; +@property (weak, nonatomic) IBOutlet UIImageView *icsIcon; -(void) configureForMessage:(LinphoneChatMessage *)message withDimissBlock:(void (^)(void))dismissBlock hideDismiss:(BOOL)hideDismiss withClickBlock:(void (^)(void))clickBlock; @end diff --git a/Classes/LinphoneUI/UIChatReplyBubbleView.m b/Classes/LinphoneUI/UIChatReplyBubbleView.m index a63a7dc47..c9890977e 100644 --- a/Classes/LinphoneUI/UIChatReplyBubbleView.m +++ b/Classes/LinphoneUI/UIChatReplyBubbleView.m @@ -40,6 +40,7 @@ -(void) viewDidLoad { _contentCollection.dataSource = self; + [_icsIcon setImageNamed:@"voip_meeting_schedule" tintColor:VoipTheme.voip_dark_gray]; [_contentCollection registerClass:UICollectionViewCell.class forCellWithReuseIdentifier:@"dataContent"]; } @@ -51,6 +52,7 @@ _contentCollection.hidden = true; _senderName.hidden = true; _originalMessageGone.hidden = false; + _icsIcon.hidden = true; return; } if (hideDismiss) { @@ -60,9 +62,12 @@ _originalMessageGone.hidden = true; self.message = message; self.dataContent = [self loadDataContent]; + BOOL isIcal = [ICSBubbleView isConferenceInvitationMessageWithCmessage:message]; + _icsIcon.hidden = !isIcal; + NSString *sender = [FastAddressBook displayNameForAddress:linphone_chat_message_get_from_address(message)]; _senderName.text = sender; - const char * text = linphone_chat_message_get_text_content(message); + const char * text = isIcal ? [ICSBubbleView getSubjectFromContentWithCmessage:message].UTF8String : linphone_chat_message_get_text_content(message); if (text && strlen(text) == 0) text = nil; _textContent.text = text ? [NSString stringWithUTF8String:text] : @""; diff --git a/Classes/Swift/Conference/Views/ICSBubbleView.swift b/Classes/Swift/Conference/Views/ICSBubbleView.swift index 54adc6a9b..a4cebbef5 100644 --- a/Classes/Swift/Conference/Views/ICSBubbleView.swift +++ b/Classes/Swift/Conference/Views/ICSBubbleView.swift @@ -169,5 +169,17 @@ import EventKitUI controller.dismiss(animated: true, completion: nil) } + @objc static func getSubjectFromContent(cmessage: OpaquePointer) -> String { + let message = ChatMessage.getSwiftObject(cObject: cmessage) + var subject = "" + message.contents.forEach { content in + if (content.isIcalendar) { + if let conferenceInfo = try? Factory.Instance.createConferenceInfoFromIcalendarContent(content: content) { + subject = conferenceInfo.subject + } + } + } + return subject + } } diff --git a/Classes/Swift/Voip/Theme/VoipTheme.swift b/Classes/Swift/Voip/Theme/VoipTheme.swift index 723e35818..0d0ab2dfa 100644 --- a/Classes/Swift/Voip/Theme/VoipTheme.swift +++ b/Classes/Swift/Voip/Theme/VoipTheme.swift @@ -26,7 +26,7 @@ import UIKit static let voip_gray_blue_color = UIColor(hex:"#798791") static let voip_light_gray = UIColor(hex:"#D0D8DE") @objc static let voip_dark_gray = UIColor(hex:"#4B5964") - static let voip_gray = UIColor(hex:"#96A5B1") + @objc static let voip_gray = UIColor(hex:"#96A5B1") static let voip_gray_background = UIColor(hex:"#AFAFAF") static let voip_call_record_background = UIColor(hex:"#EBEBEB") static let voip_calls_list_inactive_background = UIColor(hex:"#F0F1F2") diff --git a/Resources/images/voip_meeting_schedule.png b/Resources/images/voip_meeting_schedule.png index f24ee373d..168e3460f 100644 Binary files a/Resources/images/voip_meeting_schedule.png and b/Resources/images/voip_meeting_schedule.png differ