diff options
| author | Andrej Mihajlov <and@mullvad.net> | 2023-01-19 08:36:32 +0100 |
|---|---|---|
| committer | Andrej Mihajlov <and@mullvad.net> | 2023-01-20 08:59:06 +0100 |
| commit | d7bd37a8ff6b0f816833ee2e3512efca6cc7093d (patch) | |
| tree | 30f68eddd8c4975661217b2a73920024c290a402 /ios/MullvadVPN/ProblemReportViewController.swift | |
| parent | 013a636d57813594cf89f9a2ab045f5f3edebade (diff) | |
| download | mullvadvpn-d7bd37a8ff6b0f816833ee2e3512efca6cc7093d.tar.xz mullvadvpn-d7bd37a8ff6b0f816833ee2e3512efca6cc7093d.zip | |
Drop custom navigation controller
Removes redundant ConditionalNavigation protocol that is not used for
anything more than disabling pop gesture in problem reports when editing.
Pop gesture can be disabled directly from within problem report view controller.
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 } } |
