From b454580caa4077f2ccfa872929aa2f8125916782 Mon Sep 17 00:00:00 2001 From: Benjamin Reis Date: Fri, 6 Oct 2017 15:19:20 +0200 Subject: [PATCH] send initial invite to create a chatroom --- Classes/ChatConversationCreateConfirmView.h | 1 + Classes/ChatConversationCreateConfirmView.m | 22 ++++++-- Classes/ChatConversationCreateConfirmView.xib | 17 ++++--- Classes/LinphoneUI/UIChatCell.m | 12 +++-- .../UIChatCreateConfirmCollectionViewCell.h | 7 ++- .../UIChatCreateConfirmCollectionViewCell.m | 19 ++++++- .../UIChatCreateConfirmCollectionViewCell.xib | 48 ++++++++++++++++++ Resources/images/chat_group_avatar.png | Bin 0 -> 5357 bytes Resources/images/chat_group_avatar@2x.png | Bin 0 -> 10797 bytes Resources/linphonerc-factory | 1 + linphone.xcodeproj/project.pbxproj | 12 +++++ 11 files changed, 125 insertions(+), 14 deletions(-) create mode 100644 Classes/LinphoneUI/UIChatCreateConfirmCollectionViewCell.xib create mode 100644 Resources/images/chat_group_avatar.png create mode 100644 Resources/images/chat_group_avatar@2x.png diff --git a/Classes/ChatConversationCreateConfirmView.h b/Classes/ChatConversationCreateConfirmView.h index e3f2ebbda..95c316048 100644 --- a/Classes/ChatConversationCreateConfirmView.h +++ b/Classes/ChatConversationCreateConfirmView.h @@ -18,5 +18,6 @@ @property(strong, nonatomic) IBOutlet ChatConversationCreateConfirmCollectionViewController *collectionController; - (IBAction)onBackClick:(id)sender; - (IBAction)onValidateClick:(id)sender; +- (void)deleteContact:(NSString *)uri; @end diff --git a/Classes/ChatConversationCreateConfirmView.m b/Classes/ChatConversationCreateConfirmView.m index 0db723fb0..653fadc6d 100644 --- a/Classes/ChatConversationCreateConfirmView.m +++ b/Classes/ChatConversationCreateConfirmView.m @@ -50,9 +50,9 @@ static UICompositeViewDescription *compositeDescription = nil; - (void) viewWillAppear:(BOOL)animated { for(id uri in _contacts.allKeys) { - [_collectionController.collectionView registerClass:UIChatCreateConfirmCollectionViewCell.class forCellWithReuseIdentifier:uri]; - if(![_contactsGroup containsObject:_contacts[uri]]) - [_contactsGroup addObject:_contacts[uri]]; + [_collectionView registerClass:UIChatCreateConfirmCollectionViewCell.class forCellWithReuseIdentifier:uri]; + if(![_contactsGroup containsObject:uri]) + [_contactsGroup addObject:uri]; } [_collectionView reloadData]; } @@ -73,6 +73,21 @@ static UICompositeViewDescription *compositeDescription = nil; } - (IBAction)onValidateClick:(id)sender { + LinphoneChatRoom *room = linphone_core_create_client_group_chat_room(LC, _nameField.text.UTF8String); + bctbx_list_t *addresses = NULL; + for (id object in _contactsGroup) { + LinphoneAddress *addr = linphone_address_new(((NSString *)object).UTF8String); + if(addresses) + bctbx_list_append(addresses, addr); + else + addresses = bctbx_list_new(addr); + } + linphone_chat_room_add_participants(room, addresses); +} + +- (void)deleteContact:(NSString *)uri { + [_contacts removeObjectForKey:uri]; + [_contactsGroup removeObject:uri]; [_collectionView reloadData]; } @@ -97,6 +112,7 @@ static UICompositeViewDescription *compositeDescription = nil; NSString *uri = _contactsGroup[indexPath.item]; UIChatCreateConfirmCollectionViewCell *cell = (UIChatCreateConfirmCollectionViewCell *)[_collectionView dequeueReusableCellWithReuseIdentifier:uri forIndexPath:indexPath]; cell.uri = uri; + cell.confirmController = self; cell = [cell initWithName:_contacts[uri]]; return cell; } diff --git a/Classes/ChatConversationCreateConfirmView.xib b/Classes/ChatConversationCreateConfirmView.xib index 1354e1f32..6cc74775d 100644 --- a/Classes/ChatConversationCreateConfirmView.xib +++ b/Classes/ChatConversationCreateConfirmView.xib @@ -26,6 +26,17 @@ + + + + + + + + + + + @@ -75,12 +86,6 @@ - - - - - - diff --git a/Classes/LinphoneUI/UIChatCell.m b/Classes/LinphoneUI/UIChatCell.m index 55eedc5fc..82edb07f9 100644 --- a/Classes/LinphoneUI/UIChatCell.m +++ b/Classes/LinphoneUI/UIChatCell.m @@ -63,9 +63,15 @@ LOGW(@"Cannot update chat cell: null chat"); return; } - const LinphoneAddress *addr = linphone_chat_room_get_peer_address(chatRoom); - [ContactDisplay setDisplayNameLabel:_addressLabel forAddress:addr]; - [_avatarImage setImage:[FastAddressBook imageForAddress:addr] bordered:NO withRoundedRadius:YES]; + + if(linphone_chat_room_get_nb_participants(chatRoom) > 1) { + _addressLabel.text = [NSString stringWithUTF8String:linphone_chat_room_get_subject(chatRoom)]; + [_avatarImage setImage:[UIImage imageNamed:@"chat_group_avatar.png"] bordered:NO withRoundedRadius:YES]; + } else { + const LinphoneAddress *addr = linphone_chat_room_get_peer_address(chatRoom); + [ContactDisplay setDisplayNameLabel:_addressLabel forAddress:addr]; + [_avatarImage setImage:[FastAddressBook imageForAddress:addr] bordered:NO withRoundedRadius:YES]; + } LinphoneChatMessage *last_message = linphone_chat_room_get_user_data(chatRoom); if (last_message) { diff --git a/Classes/LinphoneUI/UIChatCreateConfirmCollectionViewCell.h b/Classes/LinphoneUI/UIChatCreateConfirmCollectionViewCell.h index 2366195b8..f5881b11c 100644 --- a/Classes/LinphoneUI/UIChatCreateConfirmCollectionViewCell.h +++ b/Classes/LinphoneUI/UIChatCreateConfirmCollectionViewCell.h @@ -7,6 +7,11 @@ #import #import "UIChatCreateCollectionViewCell.h" +#import "ChatConversationCreateConfirmView.h" -@interface UIChatCreateConfirmCollectionViewCell : UIChatCreateCollectionViewCell +@interface UIChatCreateConfirmCollectionViewCell : UICollectionViewCell +@property (weak, nonatomic) IBOutlet UILabel *displayNameLabel; +@property (strong, nonatomic) ChatConversationCreateConfirmView *confirmController; +@property (strong, nonatomic) NSString *uri; +- (id)initWithName:(NSString *)identifier; @end diff --git a/Classes/LinphoneUI/UIChatCreateConfirmCollectionViewCell.m b/Classes/LinphoneUI/UIChatCreateConfirmCollectionViewCell.m index e6874218e..fe1de1ae9 100644 --- a/Classes/LinphoneUI/UIChatCreateConfirmCollectionViewCell.m +++ b/Classes/LinphoneUI/UIChatCreateConfirmCollectionViewCell.m @@ -9,8 +9,25 @@ @implementation UIChatCreateConfirmCollectionViewCell -- (void)onDelete { +- (id)initWithName:(NSString *)identifier { + if (self != nil) { + NSArray *arrayOfViews = + [[NSBundle mainBundle] loadNibNamed:NSStringFromClass(self.class) owner:self options:nil]; + if ([arrayOfViews count] >= 1) { + UIChatCreateCollectionViewCell *sub = ((UIChatCreateCollectionViewCell *)[arrayOfViews objectAtIndex:0]); + [self addSubview:sub]; + _displayNameLabel = sub.nameLabel; + } + } + [_displayNameLabel setText:identifier]; + UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(onDelete)]; + tap.numberOfTouchesRequired = 1; + [self addGestureRecognizer:tap]; + return self; } +- (void)onDelete { + [_confirmController deleteContact:_uri]; +} @end diff --git a/Classes/LinphoneUI/UIChatCreateConfirmCollectionViewCell.xib b/Classes/LinphoneUI/UIChatCreateConfirmCollectionViewCell.xib new file mode 100644 index 000000000..a8007c9e7 --- /dev/null +++ b/Classes/LinphoneUI/UIChatCreateConfirmCollectionViewCell.xib @@ -0,0 +1,48 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Resources/images/chat_group_avatar.png b/Resources/images/chat_group_avatar.png new file mode 100644 index 0000000000000000000000000000000000000000..db9230dbb761e64a13c78664bc1c77cf0d741ba2 GIT binary patch literal 5357 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 SEpjl}38^V*KPiD(2K^s`M%7UO literal 0 HcmV?d00001 diff --git a/Resources/linphonerc-factory b/Resources/linphonerc-factory index ff3807dcd..d74dc6584 100644 --- a/Resources/linphonerc-factory +++ b/Resources/linphonerc-factory @@ -30,6 +30,7 @@ deliver_imdn=1 [misc] #by default it is set to 30 by liblinphone history_max_size=-1 +conference_factory_uri=sips:conference-factory@sip.linphone.org [sound] dtmf_player_amp=0.007 diff --git a/linphone.xcodeproj/project.pbxproj b/linphone.xcodeproj/project.pbxproj index 09a9b4917..f0fc2a51a 100755 --- a/linphone.xcodeproj/project.pbxproj +++ b/linphone.xcodeproj/project.pbxproj @@ -626,6 +626,9 @@ 8C2595DD1DEDC92D007A6424 /* ProviderDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C2595DC1DEDC92D007A6424 /* ProviderDelegate.m */; }; 8C2595DF1DEDCC8E007A6424 /* CallKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8C2595DE1DEDCC8E007A6424 /* CallKit.framework */; }; 8C2595E11DEDDC67007A6424 /* callkit_logo.png in Resources */ = {isa = PBXBuildFile; fileRef = 8C2595E01DEDDC67007A6424 /* callkit_logo.png */; }; + 8C2A81921F877EDC0012A66B /* UIChatCreateConfirmCollectionViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 8C2A81911F877EDC0012A66B /* UIChatCreateConfirmCollectionViewCell.xib */; }; + 8C2A81951F87B8000012A66B /* chat_group_avatar@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 8C2A81931F87B7FF0012A66B /* chat_group_avatar@2x.png */; }; + 8C2A81961F87B8000012A66B /* chat_group_avatar.png in Resources */ = {isa = PBXBuildFile; fileRef = 8C2A81941F87B8000012A66B /* chat_group_avatar.png */; }; 8C300D9A1E40E0CC00728EF3 /* lime_ko.png in Resources */ = {isa = PBXBuildFile; fileRef = 8C300D981E40E0CC00728EF3 /* lime_ko.png */; }; 8C300D9B1E40E0CC00728EF3 /* lime_ko@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 8C300D991E40E0CC00728EF3 /* lime_ko@2x.png */; }; 8C3EA9E31EB892D600B732B6 /* msamr.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8C3EA9E01EB892D600B732B6 /* msamr.framework */; }; @@ -1672,6 +1675,9 @@ 8C2595DC1DEDC92D007A6424 /* ProviderDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ProviderDelegate.m; sourceTree = ""; }; 8C2595DE1DEDCC8E007A6424 /* CallKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CallKit.framework; path = System/Library/Frameworks/CallKit.framework; sourceTree = SDKROOT; }; 8C2595E01DEDDC67007A6424 /* callkit_logo.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = callkit_logo.png; sourceTree = ""; }; + 8C2A81911F877EDC0012A66B /* UIChatCreateConfirmCollectionViewCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = UIChatCreateConfirmCollectionViewCell.xib; sourceTree = ""; }; + 8C2A81931F87B7FF0012A66B /* chat_group_avatar@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "chat_group_avatar@2x.png"; sourceTree = ""; }; + 8C2A81941F87B8000012A66B /* chat_group_avatar.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = chat_group_avatar.png; sourceTree = ""; }; 8C300D981E40E0CC00728EF3 /* lime_ko.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = lime_ko.png; sourceTree = ""; }; 8C300D991E40E0CC00728EF3 /* lime_ko@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "lime_ko@2x.png"; sourceTree = ""; }; 8C3EA9E01EB892D600B732B6 /* msamr.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = msamr.framework; path = "liblinphone-sdk/apple-darwin/Frameworks/msamr.framework"; sourceTree = ""; }; @@ -2184,6 +2190,7 @@ 8C9C5E101F83BD97006987FA /* UIChatCreateCollectionViewCell.xib */, 8CD3F5AA1F86632100680C98 /* UIChatCreateConfirmCollectionViewCell.h */, 8CD3F5AB1F86632100680C98 /* UIChatCreateConfirmCollectionViewCell.m */, + 8C2A81911F877EDC0012A66B /* UIChatCreateConfirmCollectionViewCell.xib */, 63B8D69F1BCBF43100C12B09 /* UIChatCreateCell.h */, 63B8D6A01BCBF43100C12B09 /* UIChatCreateCell.m */, 639E9CA81C0DB7F200019A75 /* UIChatCreateCell.xib */, @@ -2436,6 +2443,8 @@ 633FEBE11D3CD5570014B822 /* images */ = { isa = PBXGroup; children = ( + 8C2A81941F87B8000012A66B /* chat_group_avatar.png */, + 8C2A81931F87B7FF0012A66B /* chat_group_avatar@2x.png */, 8CB2B8F61F86229B0015CEE2 /* chat_secure.png */, 8CB2B8F71F86229C0015CEE2 /* next_disabled.png */, 8CB2B8F81F86229D0015CEE2 /* next_disabled@2x.png */, @@ -3534,6 +3543,7 @@ 633FEDA51D3CD5590014B822 /* back_default@2x.png in Resources */, 633FEF311D3CD55A0014B822 /* route_speaker_disabled@2x.png in Resources */, 633FEEE41D3CD55A0014B822 /* numpad_9_default@2x.png in Resources */, + 8C2A81961F87B8000012A66B /* chat_group_avatar.png in Resources */, 633FEDA31D3CD5590014B822 /* avatar~ipad@2x.png in Resources */, 633FEF461D3CD55A0014B822 /* speaker_disabled.png in Resources */, 638F1A911C21993D004B8E02 /* UICompositeView~ipad.xib in Resources */, @@ -3632,6 +3642,7 @@ 633FEDE11D3CD5590014B822 /* call_start_body_over~ipad@2x.png in Resources */, 633FEF4F1D3CD55A0014B822 /* valid_default@2x.png in Resources */, 633FEE241D3CD5590014B822 /* chat_start_body_over~ipad.png in Resources */, + 8C2A81951F87B8000012A66B /* chat_group_avatar@2x.png in Resources */, 633FEE091D3CD5590014B822 /* chat_add_disabled@2x.png in Resources */, 633FEE191D3CD5590014B822 /* chat_send_over@2x.png in Resources */, 633FEF181D3CD55A0014B822 /* pause_small_over_selected.png in Resources */, @@ -3682,6 +3693,7 @@ 633FEE291D3CD5590014B822 /* checkbox_unchecked@2x.png in Resources */, 63AADC001B6A0FF200AA16FD /* assistant_linphone_create.rc in Resources */, 633FEF1C1D3CD55A0014B822 /* presence_offline.png in Resources */, + 8C2A81921F877EDC0012A66B /* UIChatCreateConfirmCollectionViewCell.xib in Resources */, 633FEE901D3CD55A0014B822 /* list_details_over.png in Resources */, 633FEDE31D3CD5590014B822 /* call_status_incoming@2x.png in Resources */, 633FEE821D3CD5590014B822 /* led_disconnected.png in Resources */,