diff --git a/Riot/Modules/Rooms/RoomsViewController.m b/Riot/Modules/Rooms/RoomsViewController.m index 4cc0a280d..9e24fb19a 100644 --- a/Riot/Modules/Rooms/RoomsViewController.m +++ b/Riot/Modules/Rooms/RoomsViewController.m @@ -22,7 +22,7 @@ #import "Riot-Swift.h" -@interface RoomsViewController () +@interface RoomsViewController () { RecentsDataSource *recentsDataSource; @@ -123,6 +123,15 @@ } } +- (void)onPlusButtonPressed +{ + SearchableDirectoryViewController *controller = [SearchableDirectoryViewController instantiateWithSession:self.mainSession]; + [controller displayWithDataSource:[recentsDataSource.publicRoomsDirectoryDataSource copy]]; + controller.delegate = self; + UINavigationController *navController = [[RiotNavigationController alloc] initWithRootViewController:controller]; + [self presentViewController:navController animated:YES completion:nil]; +} + #pragma mark - - (void)scrollToNextRoomWithMissedNotifications @@ -249,7 +258,12 @@ - (void)openPublicRoomAtIndexPath:(NSIndexPath *)indexPath { MXPublicRoom *publicRoom = [recentsDataSource.publicRoomsDirectoryDataSource roomAtIndexPath:indexPath]; + + [self openPublicRoom:publicRoom]; +} +- (void)openPublicRoom:(MXPublicRoom *)publicRoom +{ // Check whether the user has already joined the selected public room if ([recentsDataSource.publicRoomsDirectoryDataSource.mxSession roomWithRoomId:publicRoom.roomId]) { @@ -336,4 +350,25 @@ } } +#pragma mark - SearchableDirectoryViewControllerDelegate + +- (void)searchableDirectoryViewControllerDidCancel:(SearchableDirectoryViewController *)viewController +{ + [viewController dismissViewControllerAnimated:YES completion:nil]; +} + +- (void)searchableDirectoryViewControllerDidSelect:(SearchableDirectoryViewController *)viewController room:(MXPublicRoom *)room +{ + [viewController dismissViewControllerAnimated:YES completion:^{ + [self openPublicRoom:room]; + }]; +} + +- (void)searchableDirectoryViewControllerDidTapCreateNewRoom:(SearchableDirectoryViewController *)viewController +{ + [viewController dismissViewControllerAnimated:YES completion:^{ + [self createAnEmptyRoom]; + }]; +} + @end