diff --git a/Vector/ViewController/ContactsTableViewController.h b/Vector/ViewController/ContactsTableViewController.h index 746caaea7..43ed6e6fb 100644 --- a/Vector/ViewController/ContactsTableViewController.h +++ b/Vector/ViewController/ContactsTableViewController.h @@ -112,8 +112,9 @@ @param searchText the search pattern (nil to reset filtering). @param forceReset tell whether the search request must be applied by ignoring the previous search result if any (use NO by default). + @param complete a block object called when the operation is complete. */ -- (void)searchWithPattern:(NSString *)searchText forceReset:(BOOL)forceReset; +- (void)searchWithPattern:(NSString *)searchText forceReset:(BOOL)forceReset complete:(void (^)())complete; /** Refresh the contacts table display. diff --git a/Vector/ViewController/ContactsTableViewController.m b/Vector/ViewController/ContactsTableViewController.m index 0cf4fbf64..36f452a7c 100644 --- a/Vector/ViewController/ContactsTableViewController.m +++ b/Vector/ViewController/ContactsTableViewController.m @@ -215,7 +215,7 @@ } } -- (void)searchWithPattern:(NSString *)searchText forceReset:(BOOL)forceRefresh +- (void)searchWithPattern:(NSString *)searchText forceReset:(BOOL)forceRefresh complete:(void (^)())complete { // Update search results. searchText = [searchText stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]]; @@ -348,12 +348,17 @@ // Force scroll to top [self.tableView setContentOffset:CGPointMake(-self.tableView.contentInset.left, -self.tableView.contentInset.top) animated:NO]; + + if (complete) + { + complete(); + } } else { // Launch a new search forceSearchResultRefresh = NO; - [self searchWithPattern:searchProcessingText forceReset:YES]; + [self searchWithPattern:searchProcessingText forceReset:YES complete:complete]; } } }); @@ -378,7 +383,7 @@ } // Refresh the search result - [self searchWithPattern:currentSearchText forceReset:YES]; + [self searchWithPattern:currentSearchText forceReset:YES complete:nil]; } - (NSMutableArray*)unfilteredLocalContactsArray @@ -726,7 +731,7 @@ - (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText { - [self searchWithPattern:searchText forceReset:NO]; + [self searchWithPattern:searchText forceReset:NO complete:nil]; } - (void)searchBarSearchButtonClicked:(UISearchBar *)searchBar @@ -754,7 +759,7 @@ searchBar.text = nil; // Reset filtering - [self searchWithPattern:nil forceReset:NO]; + [self searchWithPattern:nil forceReset:NO complete:nil]; // Leave search [searchBar resignFirstResponder]; diff --git a/Vector/ViewController/HomeViewController.m b/Vector/ViewController/HomeViewController.m index 8106fd8c3..793f2428c 100644 --- a/Vector/ViewController/HomeViewController.m +++ b/Vector/ViewController/HomeViewController.m @@ -1131,7 +1131,11 @@ } else if (self.selectedViewController == peopleSearchViewController) { - [peopleSearchViewController searchWithPattern:self.searchBar.text forceReset:NO]; + [peopleSearchViewController searchWithPattern:self.searchBar.text forceReset:NO complete:^{ + + [self checkAndShowBackgroundImage]; + + }]; } else if (self.selectedViewController == filesSearchViewController) { @@ -1159,7 +1163,13 @@ { [messagesSearchDataSource searchMessages:nil force:NO]; } - [peopleSearchViewController searchWithPattern:nil forceReset:NO]; + + [peopleSearchViewController searchWithPattern:nil forceReset:NO complete:^{ + + [self checkAndShowBackgroundImage]; + + }]; + if (filesSearchDataSource.searchText.length) { [filesSearchDataSource searchMessages:nil force:NO]; diff --git a/Vector/ViewController/RoomParticipantsViewController.m b/Vector/ViewController/RoomParticipantsViewController.m index 64c87e7a4..015b84f9b 100644 --- a/Vector/ViewController/RoomParticipantsViewController.m +++ b/Vector/ViewController/RoomParticipantsViewController.m @@ -583,7 +583,7 @@ if (currentSearchText) { contactsPickerViewController.searchBar.text = currentSearchText; - [contactsPickerViewController searchWithPattern:currentSearchText forceReset:YES]; + [contactsPickerViewController searchWithPattern:currentSearchText forceReset:YES complete:nil]; } [self pushViewController:contactsPickerViewController]; diff --git a/Vector/ViewController/StartChatViewController.m b/Vector/ViewController/StartChatViewController.m index 3f8b4a11c..36dd6b0b3 100644 --- a/Vector/ViewController/StartChatViewController.m +++ b/Vector/ViewController/StartChatViewController.m @@ -586,7 +586,7 @@ - (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText { - [self searchWithPattern:searchText forceReset:NO]; + [self searchWithPattern:searchText forceReset:NO complete:nil]; } - (BOOL)searchBarShouldBeginEditing:(UISearchBar *)searchBar @@ -632,7 +632,7 @@ self.isAddParticipantSearchBarEditing = NO; // Reset filtering - [self searchWithPattern:nil forceReset:NO]; + [self searchWithPattern:nil forceReset:NO complete:nil]; // Leave search [searchBar resignFirstResponder];