diff options
Diffstat (limited to 'ios/MullvadVPN/ProblemReportViewController.swift')
| -rw-r--r-- | ios/MullvadVPN/ProblemReportViewController.swift | 37 |
1 files changed, 16 insertions, 21 deletions
diff --git a/ios/MullvadVPN/ProblemReportViewController.swift b/ios/MullvadVPN/ProblemReportViewController.swift index 622cc1600c..c894664679 100644 --- a/ios/MullvadVPN/ProblemReportViewController.swift +++ b/ios/MullvadVPN/ProblemReportViewController.swift @@ -11,7 +11,7 @@ import MullvadTypes import Operations import UIKit -class ProblemReportViewController: UIViewController, UITextFieldDelegate, ConditionalNavigation { +final class ProblemReportViewController: UIViewController, UITextFieldDelegate { private let interactor: ProblemReportInteractor private var textViewKeyboardResponder: AutomaticKeyboardResponder? @@ -629,6 +629,10 @@ class ProblemReportViewController: UIViewController, UITextFieldDelegate, Condit validateForm() } + private func setPopGestureEnabled(_ isEnabled: Bool) { + navigationController?.interactivePopGestureRecognizer?.isEnabled = isEnabled + } + private func clearPersistentViewModel() { Self.persistentViewModel = ViewModel() } @@ -684,14 +688,16 @@ class ProblemReportViewController: UIViewController, UITextFieldDelegate, Condit } } - // MARK: - Input fields' notifications + // MARK: - Input fields notifications @objc private func messageTextViewDidBeginEditing() { setDescriptionFieldExpanded(true) + setPopGestureEnabled(false) } @objc private func messageTextViewDidEndEditing() { setDescriptionFieldExpanded(false) + setPopGestureEnabled(true) } @objc private func messageTextViewDidChange() { @@ -704,27 +710,16 @@ class ProblemReportViewController: UIViewController, UITextFieldDelegate, Condit // MARK: - UITextFieldDelegate - func textFieldShouldReturn(_ textField: UITextField) -> Bool { - messageTextView.becomeFirstResponder() - return false + func textFieldDidBeginEditing(_ textField: UITextField) { + setPopGestureEnabled(false) } - // MARK: - ConditionalNavigation - - func shouldPopNavigationItem( - _ navigationItem: UINavigationItem, - trigger: NavigationPopTrigger - ) -> Bool { - switch trigger { - case .interactiveGesture: - // Disable swipe when editing - return !emailTextField.isFirstResponder && !messageTextView.isFirstResponder + func textFieldDidEndEditing(_ textField: UITextField) { + setPopGestureEnabled(true) + } - case .backButton: - // Dismiss the keyboard to fix a visual glitch when moving back to the previous - // controller - view.endEditing(true) - return true - } + func textFieldShouldReturn(_ textField: UITextField) -> Bool { + messageTextView.becomeFirstResponder() + return false } } |
