diff options
author | Roopesh Chander <roop@roopc.net> | 2021-07-25 01:34:03 +0530 |
---|---|---|
committer | Roopesh Chander <roop@roopc.net> | 2021-07-28 03:18:01 +0530 |
commit | a115dd3bd92e8fe99efd30e46cdbba89f7158d38 (patch) | |
tree | b2cae19a0a0ab9b457b6de7c3176080382e18f00 /Sources/WireGuardApp/UI/iOS/ViewController/TunnelsListTableViewController.swift | |
parent | UI: TunnelsManager: Add setOnDemandEnabled() instance method (diff) | |
download | wireguard-apple-a115dd3bd92e8fe99efd30e46cdbba89f7158d38.tar.xz wireguard-apple-a115dd3bd92e8fe99efd30e46cdbba89f7158d38.zip |
UI: iOS: Tunnels list: Incorporate on-demand-ness in the switch
Signed-off-by: Roopesh Chander <roop@roopc.net>
Diffstat (limited to '')
-rw-r--r-- | Sources/WireGuardApp/UI/iOS/ViewController/TunnelsListTableViewController.swift | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/Sources/WireGuardApp/UI/iOS/ViewController/TunnelsListTableViewController.swift b/Sources/WireGuardApp/UI/iOS/ViewController/TunnelsListTableViewController.swift index 16e2adc..85e64ce 100644 --- a/Sources/WireGuardApp/UI/iOS/ViewController/TunnelsListTableViewController.swift +++ b/Sources/WireGuardApp/UI/iOS/ViewController/TunnelsListTableViewController.swift @@ -317,10 +317,18 @@ extension TunnelsListTableViewController: UITableViewDataSource { cell.tunnel = tunnel cell.onSwitchToggled = { [weak self] isOn in guard let self = self, let tunnelsManager = self.tunnelsManager else { return } - if isOn { - tunnelsManager.startActivation(of: tunnel) + if tunnel.hasOnDemandRules { + tunnelsManager.setOnDemandEnabled(isOn, on: tunnel) { error in + if error == nil && !isOn { + tunnelsManager.startDeactivation(of: tunnel) + } + } } else { - tunnelsManager.startDeactivation(of: tunnel) + if isOn { + tunnelsManager.startActivation(of: tunnel) + } else { + tunnelsManager.startDeactivation(of: tunnel) + } } } } |