diff options
| author | Andrej Mihajlov <and@mullvad.net> | 2021-06-09 13:58:12 +0200 |
|---|---|---|
| committer | Andrej Mihajlov <and@mullvad.net> | 2021-07-16 13:42:44 +0200 |
| commit | 08e08a07afe91491351340ce71cbe33b2918b3d9 (patch) | |
| tree | 47eea000ba6a208a3177866283584f70450c4eb5 | |
| parent | 902ca9231d75102867c5fd06682fd4296632969b (diff) | |
| download | mullvadvpn-08e08a07afe91491351340ce71cbe33b2918b3d9.tar.xz mullvadvpn-08e08a07afe91491351340ce71cbe33b2918b3d9.zip | |
Accessibility: implement magic tap
| -rw-r--r-- | ios/MullvadVPN/AppDelegate.swift | 22 | ||||
| -rw-r--r-- | ios/MullvadVPN/RootContainerViewController.swift | 8 |
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() { |
