summaryrefslogtreecommitdiffhomepage
path: root/ios/MullvadVPN/ProblemReportViewController.swift
diff options
context:
space:
mode:
authorAndrej Mihajlov <and@mullvad.net>2023-01-19 08:36:32 +0100
committerAndrej Mihajlov <and@mullvad.net>2023-01-20 08:59:06 +0100
commitd7bd37a8ff6b0f816833ee2e3512efca6cc7093d (patch)
tree30f68eddd8c4975661217b2a73920024c290a402 /ios/MullvadVPN/ProblemReportViewController.swift
parent013a636d57813594cf89f9a2ab045f5f3edebade (diff)
downloadmullvadvpn-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.swift37
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
}
}