summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorAndrej Mihajlov <and@mullvad.net>2021-06-09 13:58:12 +0200
committerAndrej Mihajlov <and@mullvad.net>2021-07-16 13:42:44 +0200
commit08e08a07afe91491351340ce71cbe33b2918b3d9 (patch)
tree47eea000ba6a208a3177866283584f70450c4eb5
parent902ca9231d75102867c5fd06682fd4296632969b (diff)
downloadmullvadvpn-08e08a07afe91491351340ce71cbe33b2918b3d9.tar.xz
mullvadvpn-08e08a07afe91491351340ce71cbe33b2918b3d9.zip
Accessibility: implement magic tap
-rw-r--r--ios/MullvadVPN/AppDelegate.swift22
-rw-r--r--ios/MullvadVPN/RootContainerViewController.swift8
2 files changed, 27 insertions, 3 deletions
diff --git a/ios/MullvadVPN/AppDelegate.swift b/ios/MullvadVPN/AppDelegate.swift
index 0591fa0d79..9bc80732fa 100644
--- a/ios/MullvadVPN/AppDelegate.swift
+++ b/ios/MullvadVPN/AppDelegate.swift
@@ -382,6 +382,18 @@ extension AppDelegate: RootContainerViewControllerDelegate {
return controller.supportedInterfaceOrientations
}
}
+
+ func rootContainerViewAccessibilityPerformMagicTap(_ controller: RootContainerViewController) -> Bool {
+ guard Account.shared.isLoggedIn else { return false }
+
+ switch TunnelManager.shared.tunnelState {
+ case .connected, .connecting, .reconnecting:
+ reconnectTunnel()
+ case .disconnecting, .disconnected:
+ connectTunnel()
+ }
+ return true
+ }
}
// MARK: - LoginViewControllerDelegate
@@ -517,9 +529,7 @@ extension AppDelegate: ConnectViewControllerDelegate {
}
func connectViewControllerShouldReconnectTunnel(_ controller: ConnectViewController) {
- TunnelManager.shared.reconnectTunnel {
- self.logger?.debug("Re-connected VPN tunnel")
- }
+ reconnectTunnel()
}
@objc private func handleDismissSelectLocationController(_ sender: Any) {
@@ -554,6 +564,12 @@ extension AppDelegate: ConnectViewControllerDelegate {
}
}
+ private func reconnectTunnel() {
+ TunnelManager.shared.reconnectTunnel {
+ self.logger?.debug("Re-connected VPN tunnel")
+ }
+ }
+
private func presentTunnelError(_ error: TunnelManager.Error, alertTitle: String) {
let alertController = UIAlertController(
title: alertTitle,
diff --git a/ios/MullvadVPN/RootContainerViewController.swift b/ios/MullvadVPN/RootContainerViewController.swift
index 5ba68f75cf..7aaadddc56 100644
--- a/ios/MullvadVPN/RootContainerViewController.swift
+++ b/ios/MullvadVPN/RootContainerViewController.swift
@@ -49,6 +49,8 @@ protocol RootContainerViewControllerDelegate: AnyObject {
func rootContainerViewControllerShouldShowSettings(_ controller: RootContainerViewController, navigateTo route: SettingsNavigationRoute?, animated: Bool)
func rootContainerViewSupportedInterfaceOrientations(_ controller: RootContainerViewController) -> UIInterfaceOrientationMask
+
+ func rootContainerViewAccessibilityPerformMagicTap(_ controller: RootContainerViewController) -> Bool
}
/// A root container view controller
@@ -271,6 +273,12 @@ class RootContainerViewController: UIViewController {
}
}
+ // MARK: - Accessibility
+
+ override func accessibilityPerformMagicTap() -> Bool {
+ return delegate?.rootContainerViewAccessibilityPerformMagicTap(self) ?? super.accessibilityPerformMagicTap()
+ }
+
// MARK: - Private
private func addTransitionView() {