aboutsummaryrefslogtreecommitdiffstats
path: root/WireGuard/WireGuard/UI/iOS/ViewController/MainViewController.swift
diff options
context:
space:
mode:
authorRoopesh Chander <roop@roopc.net>2019-04-30 18:28:06 +0530
committerJason A. Donenfeld <Jason@zx2c4.com>2019-05-25 13:24:01 +0200
commit393718dfaf164548250898ec740475dba126a816 (patch)
treeeaa5dfb2a3bca61b5033c0dc364e084131e30453 /WireGuard/WireGuard/UI/iOS/ViewController/MainViewController.swift
parentiOS: Keep track of most-recently-activated tunnels (diff)
downloadwireguard-apple-393718dfaf164548250898ec740475dba126a816.tar.xz
wireguard-apple-393718dfaf164548250898ec740475dba126a816.zip
iOS: Show Home screen quick actions for recent tunnels
Signed-off-by: Roopesh Chander <roop@roopc.net>
Diffstat (limited to '')
-rw-r--r--WireGuard/WireGuard/UI/iOS/ViewController/MainViewController.swift13
1 files changed, 12 insertions, 1 deletions
diff --git a/WireGuard/WireGuard/UI/iOS/ViewController/MainViewController.swift b/WireGuard/WireGuard/UI/iOS/ViewController/MainViewController.swift
index 380299c..1929c79 100644
--- a/WireGuard/WireGuard/UI/iOS/ViewController/MainViewController.swift
+++ b/WireGuard/WireGuard/UI/iOS/ViewController/MainViewController.swift
@@ -57,6 +57,10 @@ class MainViewController: UISplitViewController {
}
}
+ func allTunnelNames() -> [String]? {
+ guard let tunnelsManager = self.tunnelsManager else { return nil }
+ return tunnelsManager.mapTunnels { $0.name }
+ }
}
extension MainViewController: TunnelsManagerActivationDelegate {
@@ -84,7 +88,7 @@ extension MainViewController {
}
}
- func showTunnelDetailForTunnel(named tunnelName: String, animated: Bool) {
+ func showTunnelDetailForTunnel(named tunnelName: String, animated: Bool, shouldToggleStatus: Bool) {
let showTunnelDetailBlock: (TunnelsManager) -> Void = { [weak self] tunnelsManager in
if let tunnel = tunnelsManager.tunnel(named: tunnelName) {
let tunnelDetailVC = TunnelDetailTableViewController(tunnelsManager: tunnelsManager, tunnel: tunnel)
@@ -99,6 +103,13 @@ extension MainViewController {
}
}
}
+ if shouldToggleStatus {
+ if tunnel.status == .inactive {
+ tunnelsManager.startActivation(of: tunnel)
+ } else if tunnel.status == .active {
+ tunnelsManager.startDeactivation(of: tunnel)
+ }
+ }
}
}
if let tunnelsManager = tunnelsManager {