mirror of
https://gitlab.opencode.de/bwi/bundesmessenger/clients/bundesmessenger-ios.git
synced 2026-04-29 12:46:58 +02:00
Search in room members option has been moved into matrix kit.
This commit is contained in:
@@ -22,11 +22,6 @@
|
||||
#import "RageShakeManager.h"
|
||||
|
||||
@interface RoomMembersViewController () {
|
||||
|
||||
// Search
|
||||
UISearchBar *roomMembersSearchBar;
|
||||
BOOL searchBarShouldEndEditing;
|
||||
BOOL shouldScrollToTopOnRefresh;
|
||||
|
||||
// Keep reference on the current member view controller to release it correctly
|
||||
MemberViewController *currentMemberViewController;
|
||||
@@ -48,10 +43,6 @@
|
||||
|
||||
- (void)viewDidLoad {
|
||||
[super viewDidLoad];
|
||||
|
||||
UIBarButtonItem *searchButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemSearch target:self action:@selector(search:)];
|
||||
UIBarButtonItem *addButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAdd target:self action:@selector(inviteNewMember:)];
|
||||
self.navigationItem.rightBarButtonItems = @[searchButton, addButton];
|
||||
|
||||
// Setup `MXKRoomMemberListViewController` properties
|
||||
self.rageShakeManager = [RageShakeManager sharedManager];
|
||||
@@ -66,7 +57,6 @@
|
||||
currentMemberViewController = nil;
|
||||
}
|
||||
selectedMember = nil;
|
||||
roomMembersSearchBar = nil;
|
||||
}
|
||||
|
||||
- (void)didReceiveMemoryWarning {
|
||||
@@ -74,15 +64,6 @@
|
||||
// Dispose of any resources that can be recreated.
|
||||
}
|
||||
|
||||
- (void)viewWillDisappear:(BOOL)animated {
|
||||
[super viewWillDisappear:animated];
|
||||
|
||||
// Leave potential search session
|
||||
if (roomMembersSearchBar) {
|
||||
[self searchBarCancelButtonClicked:roomMembersSearchBar];
|
||||
}
|
||||
}
|
||||
|
||||
- (void)viewDidAppear:(BOOL)animated {
|
||||
[super viewDidAppear:animated];
|
||||
|
||||
@@ -92,52 +73,6 @@
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
#pragma mark - Internal methods
|
||||
|
||||
- (void)refreshRoomMembersDisplay {
|
||||
|
||||
if (shouldScrollToTopOnRefresh) {
|
||||
[self scrollToTop];
|
||||
shouldScrollToTopOnRefresh = NO;
|
||||
}
|
||||
}
|
||||
|
||||
- (void)scrollToTop {
|
||||
// stop any scrolling effect
|
||||
[UIView setAnimationsEnabled:NO];
|
||||
// before scrolling to the tableview top
|
||||
self.tableView.contentOffset = CGPointMake(-self.tableView.contentInset.left, -self.tableView.contentInset.top);
|
||||
[UIView setAnimationsEnabled:YES];
|
||||
}
|
||||
|
||||
#pragma mark - Actions
|
||||
|
||||
- (void)search:(id)sender {
|
||||
if (!roomMembersSearchBar) {
|
||||
// Check whether there are data in which search
|
||||
if ([self.dataSource tableView:self.tableView numberOfRowsInSection:0]) {
|
||||
// Create search bar
|
||||
roomMembersSearchBar = [[UISearchBar alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, 44)];
|
||||
roomMembersSearchBar.showsCancelButton = YES;
|
||||
roomMembersSearchBar.returnKeyType = UIReturnKeyDone;
|
||||
roomMembersSearchBar.delegate = self;
|
||||
searchBarShouldEndEditing = NO;
|
||||
[roomMembersSearchBar becomeFirstResponder];
|
||||
|
||||
// Force table refresh to add search bar in section header
|
||||
shouldScrollToTopOnRefresh = YES;
|
||||
[self dataSource:self.dataSource didCellChange:nil];
|
||||
}
|
||||
} else {
|
||||
[self searchBarCancelButtonClicked: roomMembersSearchBar];
|
||||
}
|
||||
}
|
||||
|
||||
- (void)inviteNewMember:(id)sender {
|
||||
// TODO GFO
|
||||
}
|
||||
|
||||
#pragma mark - Segues
|
||||
|
||||
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
|
||||
@@ -153,13 +88,6 @@
|
||||
}
|
||||
}
|
||||
|
||||
#pragma mark - MXKDataSourceDelegate
|
||||
- (void)dataSource:(MXKDataSource *)dataSource didCellChange:(id)changes {
|
||||
[super dataSource:dataSource didCellChange:changes];
|
||||
|
||||
[self refreshRoomMembersDisplay];
|
||||
}
|
||||
|
||||
#pragma mark - MXKRoomMemberListViewControllerDelegate
|
||||
- (void)roomMemberListViewController:(MXKRoomMemberListViewController *)roomMemberListViewController didSelectMember:(MXRoomMember *)member {
|
||||
|
||||
@@ -167,57 +95,5 @@
|
||||
selectedMember = member;
|
||||
[self performSegueWithIdentifier:@"showDetails" sender:self];
|
||||
}
|
||||
#pragma mark - UITableViewDelegate
|
||||
|
||||
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section {
|
||||
if (roomMembersSearchBar) {
|
||||
return (roomMembersSearchBar.frame.size.height);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section {
|
||||
return roomMembersSearchBar;
|
||||
}
|
||||
|
||||
#pragma mark - UISearchBarDelegate
|
||||
|
||||
- (BOOL)searchBarShouldBeginEditing:(UISearchBar *)searchBar {
|
||||
searchBarShouldEndEditing = NO;
|
||||
return YES;
|
||||
}
|
||||
|
||||
- (BOOL)searchBarShouldEndEditing:(UISearchBar *)searchBar {
|
||||
return searchBarShouldEndEditing;
|
||||
}
|
||||
|
||||
- (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText {
|
||||
|
||||
// Apply filter
|
||||
shouldScrollToTopOnRefresh = YES;
|
||||
if (searchText.length) {
|
||||
[self.dataSource searchWithPatterns:@[searchText]];
|
||||
} else {
|
||||
[self.dataSource searchWithPatterns:nil];
|
||||
}
|
||||
}
|
||||
|
||||
- (void)searchBarSearchButtonClicked:(UISearchBar *)searchBar {
|
||||
// "Done" key has been pressed
|
||||
searchBarShouldEndEditing = YES;
|
||||
[searchBar resignFirstResponder];
|
||||
}
|
||||
|
||||
- (void)searchBarCancelButtonClicked:(UISearchBar *)searchBar {
|
||||
|
||||
// Leave search
|
||||
searchBarShouldEndEditing = YES;
|
||||
[searchBar resignFirstResponder];
|
||||
roomMembersSearchBar = nil;
|
||||
|
||||
// Refresh display
|
||||
shouldScrollToTopOnRefresh = YES;
|
||||
[self.dataSource searchWithPatterns:nil];
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
Reference in New Issue
Block a user