mirror of
https://gitlab.opencode.de/bwi/bundesmessenger/clients/bundesmessenger-ios.git
synced 2026-04-19 16:13:42 +02:00
Room contextual menu: Dismiss when swipe up or down.
This commit is contained in:
@@ -79,7 +79,7 @@ final class RoomContextualMenuViewController: UIViewController, Themable {
|
||||
|
||||
self.backgroundOverlayView.isUserInteractionEnabled = true
|
||||
self.menuToolbarView.fill(contextualMenuItems: self.contextualMenuItems)
|
||||
self.setupBackgroundOverlayTapGestureRecognizer()
|
||||
self.setupBackgroundOverlayGestureRecognizers()
|
||||
|
||||
self.errorPresenter = MXKErrorAlertPresentation()
|
||||
|
||||
@@ -125,12 +125,20 @@ final class RoomContextualMenuViewController: UIViewController, Themable {
|
||||
|
||||
// MARK: - Private
|
||||
|
||||
private func setupBackgroundOverlayTapGestureRecognizer() {
|
||||
let tapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(handleTap(gestureRecognizer:)))
|
||||
private func setupBackgroundOverlayGestureRecognizers() {
|
||||
|
||||
let tapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(handle(gestureRecognizer:)))
|
||||
tapGestureRecognizer.delegate = self
|
||||
|
||||
let swipeGestureRecognizer = UISwipeGestureRecognizer(target: self, action: #selector(handle(gestureRecognizer:)))
|
||||
swipeGestureRecognizer.direction = [.down, .up]
|
||||
swipeGestureRecognizer.delegate = self
|
||||
|
||||
self.backgroundOverlayView.addGestureRecognizer(tapGestureRecognizer)
|
||||
self.backgroundOverlayView.addGestureRecognizer(swipeGestureRecognizer)
|
||||
}
|
||||
|
||||
@objc private func handleTap(gestureRecognizer: UIGestureRecognizer) {
|
||||
@objc private func handle(gestureRecognizer: UIGestureRecognizer) {
|
||||
self.delegate?.roomContextualMenuViewControllerDidTapBackgroundOverlay(self)
|
||||
}
|
||||
|
||||
@@ -143,6 +151,7 @@ final class RoomContextualMenuViewController: UIViewController, Themable {
|
||||
}
|
||||
}
|
||||
|
||||
// MARK: - ReactionsMenuViewModelCoordinatorDelegate
|
||||
extension RoomContextualMenuViewController: ReactionsMenuViewModelCoordinatorDelegate {
|
||||
|
||||
func reactionsMenuViewModel(_ viewModel: ReactionsMenuViewModelType, didSendReaction reaction: String, isAddReaction: Bool) {
|
||||
@@ -157,3 +166,12 @@ extension RoomContextualMenuViewController: ReactionsMenuViewModelCoordinatorDel
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// MARK: - UIGestureRecognizerDelegate
|
||||
extension RoomContextualMenuViewController: UIGestureRecognizerDelegate {
|
||||
|
||||
// Avoid triggering background overlay gesture recognizers when touching reactions menu
|
||||
func gestureRecognizer(_ gestureRecognizer: UIGestureRecognizer, shouldReceive touch: UITouch) -> Bool {
|
||||
return touch.vc_isInside(view: self.reactionsMenuView) == false
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user