aboutsummaryrefslogtreecommitdiffstats
path: root/Sources/WireGuardApp/UI/iOS/ViewController/TunnelsListTableViewController.swift
diff options
context:
space:
mode:
authorRoopesh Chander <roop@roopc.net>2021-07-25 01:34:03 +0530
committerRoopesh Chander <roop@roopc.net>2021-07-28 03:18:01 +0530
commita115dd3bd92e8fe99efd30e46cdbba89f7158d38 (patch)
treeb2cae19a0a0ab9b457b6de7c3176080382e18f00 /Sources/WireGuardApp/UI/iOS/ViewController/TunnelsListTableViewController.swift
parentUI: TunnelsManager: Add setOnDemandEnabled() instance method (diff)
downloadwireguard-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.swift14
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)
+ }
}
}
}