diff --git a/Riot/Modules/Room/EditHistory/EditHistoryCoordinatorBridgePresenter.swift b/Riot/Modules/Room/EditHistory/EditHistoryCoordinatorBridgePresenter.swift index a566c959b..ecd2a3b73 100644 --- a/Riot/Modules/Room/EditHistory/EditHistoryCoordinatorBridgePresenter.swift +++ b/Riot/Modules/Room/EditHistory/EditHistoryCoordinatorBridgePresenter.swift @@ -65,7 +65,8 @@ final class EditHistoryCoordinatorBridgePresenter: NSObject { let editHistoryCoordinator = EditHistoryCoordinator(aggregations: self.session.aggregations, formatter: formatter, event: self.event) editHistoryCoordinator.delegate = self - let navigationController = UINavigationController() + let navigationController = RiotNavigationController() + navigationController.modalPresentationStyle = .formSheet navigationController.addChild(editHistoryCoordinator.toPresentable()) viewController.present(navigationController, animated: animated, completion: nil) diff --git a/Riot/Modules/Room/RoomViewController.m b/Riot/Modules/Room/RoomViewController.m index e0bc7ff22..c7c0818a8 100644 --- a/Riot/Modules/Room/RoomViewController.m +++ b/Riot/Modules/Room/RoomViewController.m @@ -124,7 +124,7 @@ #import "Riot-Swift.h" @interface RoomViewController () + ReactionsMenuViewModelCoordinatorDelegate, EditHistoryCoordinatorBridgePresenterDelegate> { // The expanded header ExpandedRoomTitleView *expandedHeader; @@ -221,6 +221,7 @@ @property (nonatomic, strong) RoomContextualMenuPresenter *roomContextualMenuPresenter; @property (nonatomic, strong) MXKErrorAlertPresentation *errorPresenter; @property (nonatomic, strong) NSString *textMessageBeforeEditing; +@property (nonatomic, strong) EditHistoryCoordinatorBridgePresenter *editHistoryPresenter; @end @@ -2825,11 +2826,8 @@ NSArray *arguments = [absoluteURLString componentsSeparatedByString:EventFormatterLinkActionSeparator]; if (arguments.count > 1) { - // TODO: Handle event edition history. - NSString *eventId = arguments[1]; - - NSLog(@"[RoomViewController] Did tap edited mention for eventId: %@", eventId); + [self showEditHistoryForEventId:eventId animated:YES]; } shouldDoAction = NO; } @@ -5291,5 +5289,26 @@ }]; } +#pragma mark - + +- (void)showEditHistoryForEventId:(NSString*)eventId animated:(BOOL)animated +{ + MXEvent *event = [self.roomDataSource eventWithEventId:eventId]; + EditHistoryCoordinatorBridgePresenter *presenter = [[EditHistoryCoordinatorBridgePresenter alloc] initWithSession:self.roomDataSource.mxSession event:event]; + + presenter.delegate = self; + [presenter presentFrom:self animated:animated]; + + self.editHistoryPresenter = presenter; +} + +#pragma mark - EditHistoryCoordinatorBridgePresenterDelegate + +- (void)editHistoryCoordinatorBridgePresenterDelegateDidComplete:(EditHistoryCoordinatorBridgePresenter *)coordinatorBridgePresenter +{ + [coordinatorBridgePresenter dismissWithAnimated:YES completion:nil]; + self.editHistoryPresenter = nil; +} + @end