RoomVC: Prevent user interaction in timeline while presenting context menu.

This commit is contained in:
SBiOSoftWhare 2019-05-24 11:33:44 +02:00
parent db5ff9ddc7
commit 55f3a68afb

View file

@ -5089,12 +5089,13 @@
RoomContextualMenuViewController *roomContextualMenuViewController = [RoomContextualMenuViewController instantiateWith:contextualMenuItems]; RoomContextualMenuViewController *roomContextualMenuViewController = [RoomContextualMenuViewController instantiateWith:contextualMenuItems];
roomContextualMenuViewController.delegate = self; roomContextualMenuViewController.delegate = self;
[self enableOverlayContainerUserInteractions:YES];
[self.roomContextualMenuPresenter presentWithRoomContextualMenuViewController:roomContextualMenuViewController [self.roomContextualMenuPresenter presentWithRoomContextualMenuViewController:roomContextualMenuViewController
from:self from:self
on:self.overlayContainerView on:self.overlayContainerView
animated:YES animated:YES
completion:^{ completion:^{
[self contextualMenuAnimationCompletionAfterBeingShown:YES];
}]; }];
if (RiotSettings.shared.messageReaction && [cell isKindOfClass:MXKRoomBubbleTableViewCell.class]) if (RiotSettings.shared.messageReaction && [cell isKindOfClass:MXKRoomBubbleTableViewCell.class])
@ -5153,7 +5154,7 @@
} }
[self.roomContextualMenuPresenter hideContextualMenuWithAnimated:animated completion:^{ [self.roomContextualMenuPresenter hideContextualMenuWithAnimated:animated completion:^{
[self contextualMenuAnimationCompletionAfterBeingShown:NO]; [self enableOverlayContainerUserInteractions:NO];
if (completion) if (completion)
{ {
@ -5162,11 +5163,11 @@
}]; }];
} }
- (void)contextualMenuAnimationCompletionAfterBeingShown:(BOOL)isShown - (void)enableOverlayContainerUserInteractions:(BOOL)enableOverlayContainerUserInteractions
{ {
self.inputToolbarView.editable = !isShown; self.inputToolbarView.editable = !enableOverlayContainerUserInteractions;
self.bubblesTableView.scrollsToTop = !isShown; self.bubblesTableView.scrollsToTop = !enableOverlayContainerUserInteractions;
self.overlayContainerView.userInteractionEnabled = isShown; self.overlayContainerView.userInteractionEnabled = enableOverlayContainerUserInteractions;
} }
#pragma mark - RoomContextualMenuViewControllerDelegate #pragma mark - RoomContextualMenuViewControllerDelegate