From 30a977947d74abf903285fd2543f19b5e415acbd Mon Sep 17 00:00:00 2001 From: Benjamin Reis Date: Fri, 1 Dec 2017 13:53:58 +0100 Subject: [PATCH] display wait view when creating a chat room --- .../Base.lproj/ChatConversationCreateView.xib | 13 ++ Classes/Base.lproj/ContactDetailsView.xib | 119 +++++++++++------- Classes/Base.lproj/HistoryDetailsView.xib | 25 ++++ Classes/Base.lproj/PhoneMainView.xib | 13 -- Classes/ChatConversationCreateView.h | 1 + Classes/ChatConversationCreateView.m | 3 +- Classes/ChatConversationInfoView.h | 1 + Classes/ChatConversationInfoView.m | 4 +- Classes/ChatConversationInfoView.xib | 13 ++ Classes/ContactDetailsTableView.h | 1 + Classes/ContactDetailsTableView.m | 1 + Classes/ContactDetailsView.h | 1 + Classes/ContactDetailsView.m | 2 + Classes/HistoryDetailsView.h | 1 + Classes/HistoryDetailsView.m | 4 +- Classes/LinphoneUI/UIContactDetailsCell.h | 1 + Classes/LinphoneUI/UIContactDetailsCell.m | 2 +- Classes/PhoneMainView.h | 4 +- Classes/PhoneMainView.m | 5 +- 19 files changed, 143 insertions(+), 71 deletions(-) diff --git a/Classes/Base.lproj/ChatConversationCreateView.xib b/Classes/Base.lproj/ChatConversationCreateView.xib index 04a42059e..49d7e3485 100644 --- a/Classes/Base.lproj/ChatConversationCreateView.xib +++ b/Classes/Base.lproj/ChatConversationCreateView.xib @@ -19,6 +19,7 @@ + @@ -144,6 +145,18 @@ + diff --git a/Classes/Base.lproj/ContactDetailsView.xib b/Classes/Base.lproj/ContactDetailsView.xib index ff6c31804..92a11bdc5 100644 --- a/Classes/Base.lproj/ContactDetailsView.xib +++ b/Classes/Base.lproj/ContactDetailsView.xib @@ -1,9 +1,12 @@ - - + + + + + - - + + @@ -20,32 +23,33 @@ + - + - + - + - + + diff --git a/Classes/ContactDetailsTableView.h b/Classes/ContactDetailsTableView.h index 348111ad1..558b0f29c 100644 --- a/Classes/ContactDetailsTableView.h +++ b/Classes/ContactDetailsTableView.h @@ -42,5 +42,6 @@ typedef enum _ContactSections { - (void)addSipField:(NSString *)address; - (void)addEmailField:(NSString *)address; - (void)setContact:(Contact *)contact; +@property (weak, nonatomic) UIView *waitView; @end diff --git a/Classes/ContactDetailsTableView.m b/Classes/ContactDetailsTableView.m index f22220acc..630508ea4 100644 --- a/Classes/ContactDetailsTableView.m +++ b/Classes/ContactDetailsTableView.m @@ -153,6 +153,7 @@ UIContactDetailsCell *cell = [tableView dequeueReusableCellWithIdentifier:kCellId]; if (cell == nil) { cell = [[UIContactDetailsCell alloc] initWithIdentifier:kCellId]; + cell.waitView = _waitView; [cell.editTextfield setDelegate:self]; } diff --git a/Classes/ContactDetailsView.h b/Classes/ContactDetailsView.h index 65f1bc4ce..5930b8e9f 100644 --- a/Classes/ContactDetailsView.h +++ b/Classes/ContactDetailsView.h @@ -41,6 +41,7 @@ @property(weak, nonatomic) IBOutlet UIScrollView *contentView; @property(weak, nonatomic) IBOutlet UILabel *emptyLabel; @property BOOL isAdding; +@property (weak, nonatomic) IBOutlet UIView *waitView; - (IBAction)onBackClick:(id)event; - (IBAction)onCancelClick:(id)event; diff --git a/Classes/ContactDetailsView.m b/Classes/ContactDetailsView.m index 0fb0649e5..35d4b044b 100644 --- a/Classes/ContactDetailsView.m +++ b/Classes/ContactDetailsView.m @@ -192,9 +192,11 @@ - (void)viewWillAppear:(BOOL)animated { [super viewWillAppear:animated]; + _waitView.hidden = YES; _editButton.hidden = ([ContactSelection getSelectionMode] != ContactSelectionModeEdit && [ContactSelection getSelectionMode] != ContactSelectionModeNone); [_tableController.tableView addObserver:self forKeyPath:@"contentSize" options:0 context:NULL]; + _tableController.waitView = _waitView; self.tmpContact = NULL; [[NSNotificationCenter defaultCenter] addObserver: self diff --git a/Classes/HistoryDetailsView.h b/Classes/HistoryDetailsView.h index 355d53b56..dcae22794 100644 --- a/Classes/HistoryDetailsView.h +++ b/Classes/HistoryDetailsView.h @@ -38,6 +38,7 @@ @property(weak, nonatomic) IBOutlet UIView *headerView; @property(strong, nonatomic) IBOutlet HistoryDetailsTableView *tableView; @property(weak, nonatomic) IBOutlet UILabel *emptyLabel; +@property (weak, nonatomic) IBOutlet UIView *waitView; - (IBAction)onBackClick:(id)event; - (IBAction)onAddContactClick:(id)event; diff --git a/Classes/HistoryDetailsView.m b/Classes/HistoryDetailsView.m index 47d59ad43..a7e5d76e3 100644 --- a/Classes/HistoryDetailsView.m +++ b/Classes/HistoryDetailsView.m @@ -70,7 +70,7 @@ static UICompositeViewDescription *compositeDescription = nil; - (void)viewWillAppear:(BOOL)animated { [super viewWillAppear:animated]; - + _waitView.hidden = YES; [self update]; [NSNotificationCenter.defaultCenter addObserver:self @@ -200,7 +200,7 @@ static UICompositeViewDescription *compositeDescription = nil; LinphoneChatRoom *room = linphone_core_find_one_to_one_chat_room(LC, local, addr); if (!room) { bctbx_list_t *addresses = bctbx_list_new((void*)addr); - [PhoneMainView.instance createChatRoomWithSubject:LINPHONE_DUMMY_SUBJECT andAddresses:addresses]; + [PhoneMainView.instance createChatRoomWithSubject:LINPHONE_DUMMY_SUBJECT addresses:addresses andWaitView:_waitView]; bctbx_list_free_with_data(addresses, (void (*)(void *))linphone_address_unref); return; } diff --git a/Classes/LinphoneUI/UIContactDetailsCell.h b/Classes/LinphoneUI/UIContactDetailsCell.h index c068b45ff..4832d5d77 100644 --- a/Classes/LinphoneUI/UIContactDetailsCell.h +++ b/Classes/LinphoneUI/UIContactDetailsCell.h @@ -35,6 +35,7 @@ @property(weak, nonatomic) IBOutlet UIIconButton *callButton; @property(weak, nonatomic) IBOutlet UIIconButton *chatButton; @property (weak, nonatomic) IBOutlet UIImageView *linphoneImage; +@property (weak, nonatomic) UIView *waitView; - (id)initWithIdentifier:(NSString *)identifier; - (void)setAddress:(NSString *)address; diff --git a/Classes/LinphoneUI/UIContactDetailsCell.m b/Classes/LinphoneUI/UIContactDetailsCell.m index 08f0b3973..155af1f1f 100644 --- a/Classes/LinphoneUI/UIContactDetailsCell.m +++ b/Classes/LinphoneUI/UIContactDetailsCell.m @@ -142,7 +142,7 @@ LinphoneChatRoom *room = linphone_core_find_one_to_one_chat_room(LC, local, addr); if (!room) { bctbx_list_t *addresses = bctbx_list_new(addr); - [PhoneMainView.instance createChatRoomWithSubject:LINPHONE_DUMMY_SUBJECT andAddresses:addresses]; + [PhoneMainView.instance createChatRoomWithSubject:LINPHONE_DUMMY_SUBJECT addresses:addresses andWaitView:_waitView]; bctbx_list_free_with_data(addresses, (void (*)(void *))linphone_address_unref); return; } diff --git a/Classes/PhoneMainView.h b/Classes/PhoneMainView.h index 86bef3cb5..c8254fa4f 100644 --- a/Classes/PhoneMainView.h +++ b/Classes/PhoneMainView.h @@ -86,7 +86,7 @@ @property(weak, readonly) UICompositeViewDescription *currentView; @property LinphoneChatRoom* currentRoom; @property(readonly, strong) MPVolumeView *volumeView; -@property (weak, nonatomic) IBOutlet UIView *waitView; +@property (weak, nonatomic) UIView *waitView; - (void)changeCurrentView:(UICompositeViewDescription *)view; - (UIViewController*)popCurrentView; @@ -104,7 +104,7 @@ - (BOOL)removeInhibitedEvent:(id)event; - (void)updateApplicationBadgeNumber; -- (void)createChatRoomWithSubject:(const char *)subject andAddresses:(bctbx_list_t *)addresses; +- (void)createChatRoomWithSubject:(const char *)subject addresses:(bctbx_list_t *)addresses andWaitView:(UIView *)waitView; + (PhoneMainView*) instance; @end diff --git a/Classes/PhoneMainView.m b/Classes/PhoneMainView.m index 667715554..ab6c95b36 100644 --- a/Classes/PhoneMainView.m +++ b/Classes/PhoneMainView.m @@ -172,7 +172,6 @@ static RootViewManager *rootViewManagerInstance = nil; } - (void)viewWillAppear:(BOOL)animated { - _waitView.hidden = YES; [super viewWillAppear:animated]; // Set observers @@ -823,7 +822,8 @@ static RootViewManager *rootViewManagerInstance = nil; #pragma mark - Chat room Functions -- (void)createChatRoomWithSubject:(const char *)subject andAddresses:(bctbx_list_t *)addresses { +- (void)createChatRoomWithSubject:(const char *)subject addresses:(bctbx_list_t *)addresses andWaitView:(UIView *)waitView { + _waitView = waitView; _waitView.hidden = NO; LinphoneChatRoom *room = linphone_core_create_client_group_chat_room(LC, subject ?: LINPHONE_DUMMY_SUBJECT); if (!room) @@ -837,6 +837,7 @@ static RootViewManager *rootViewManagerInstance = nil; - (void)goToChatRoom:(LinphoneChatRoom *)cr { _waitView.hidden = YES; + _waitView = NULL; ChatConversationView *view = VIEW(ChatConversationView); view.chatRoom = cr; [PhoneMainView.instance changeCurrentView:view.compositeViewDescription];