diff options
author | Roopesh Chander <roop@roopc.net> | 2019-03-11 18:09:48 +0530 |
---|---|---|
committer | Jason A. Donenfeld <Jason@zx2c4.com> | 2019-03-18 06:46:56 +0100 |
commit | 01be43aa7a03e6c3d227f9861002e56f368a9ee0 (patch) | |
tree | f91a58c982d3601c445cdd0ec966b08460e00936 /WireGuard/WireGuard/UI/ActivateOnDemandViewModel.swift | |
parent | on-demand: macOS: Disable SSIDs field when adding a tunnel (diff) | |
download | wireguard-apple-01be43aa7a03e6c3d227f9861002e56f368a9ee0.tar.xz wireguard-apple-01be43aa7a03e6c3d227f9861002e56f368a9ee0.zip |
on-demand: View model should account for isActivateOnDemandEnabled
This is needed to correctly handle NETunnelProviderManager's
isOnDemandEnabled property getting changed outside of the app.
Signed-off-by: Roopesh Chander <roop@roopc.net>
Diffstat (limited to 'WireGuard/WireGuard/UI/ActivateOnDemandViewModel.swift')
-rw-r--r-- | WireGuard/WireGuard/UI/ActivateOnDemandViewModel.swift | 28 |
1 files changed, 15 insertions, 13 deletions
diff --git a/WireGuard/WireGuard/UI/ActivateOnDemandViewModel.swift b/WireGuard/WireGuard/UI/ActivateOnDemandViewModel.swift index a406393..55b9be2 100644 --- a/WireGuard/WireGuard/UI/ActivateOnDemandViewModel.swift +++ b/WireGuard/WireGuard/UI/ActivateOnDemandViewModel.swift @@ -49,20 +49,22 @@ class ActivateOnDemandViewModel { } extension ActivateOnDemandViewModel { - convenience init(option: ActivateOnDemandOption) { + convenience init(tunnel: TunnelContainer) { self.init() - switch option { - case .off: - break - case .wiFiInterfaceOnly(let onDemandSSIDOption): - isWiFiInterfaceEnabled = true - (ssidOption, selectedSSIDs) = ssidViewModel(from: onDemandSSIDOption) - case .nonWiFiInterfaceOnly: - isNonWiFiInterfaceEnabled = true - case .anyInterface(let onDemandSSIDOption): - isWiFiInterfaceEnabled = true - isNonWiFiInterfaceEnabled = true - (ssidOption, selectedSSIDs) = ssidViewModel(from: onDemandSSIDOption) + if tunnel.isActivateOnDemandEnabled { + switch tunnel.onDemandOption { + case .off: + break + case .wiFiInterfaceOnly(let onDemandSSIDOption): + isWiFiInterfaceEnabled = true + (ssidOption, selectedSSIDs) = ssidViewModel(from: onDemandSSIDOption) + case .nonWiFiInterfaceOnly: + isNonWiFiInterfaceEnabled = true + case .anyInterface(let onDemandSSIDOption): + isWiFiInterfaceEnabled = true + isNonWiFiInterfaceEnabled = true + (ssidOption, selectedSSIDs) = ssidViewModel(from: onDemandSSIDOption) + } } } |