UI: Keep on-demand rules even if on-demand is disabled

Signed-off-by: Roopesh Chander <roop@roopc.net>
This commit is contained in:
Roopesh Chander
2021-07-28 02:10:45 +05:30
parent 1e9e21bacf
commit abaf1f1454
2 changed files with 13 additions and 15 deletions
@@ -46,7 +46,7 @@ extension ActivateOnDemandOption {
} }
init(from tunnelProviderManager: NETunnelProviderManager) { init(from tunnelProviderManager: NETunnelProviderManager) {
if tunnelProviderManager.isOnDemandEnabled, let onDemandRules = tunnelProviderManager.onDemandRules { if let onDemandRules = tunnelProviderManager.onDemandRules {
self = ActivateOnDemandOption.create(from: onDemandRules) self = ActivateOnDemandOption.create(from: onDemandRules)
} else { } else {
self = .off self = .off
@@ -51,20 +51,18 @@ class ActivateOnDemandViewModel {
extension ActivateOnDemandViewModel { extension ActivateOnDemandViewModel {
convenience init(tunnel: TunnelContainer) { convenience init(tunnel: TunnelContainer) {
self.init() self.init()
if tunnel.isActivateOnDemandEnabled { switch tunnel.onDemandOption {
switch tunnel.onDemandOption { case .off:
case .off: break
break case .wiFiInterfaceOnly(let onDemandSSIDOption):
case .wiFiInterfaceOnly(let onDemandSSIDOption): isWiFiInterfaceEnabled = true
isWiFiInterfaceEnabled = true (ssidOption, selectedSSIDs) = ssidViewModel(from: onDemandSSIDOption)
(ssidOption, selectedSSIDs) = ssidViewModel(from: onDemandSSIDOption) case .nonWiFiInterfaceOnly:
case .nonWiFiInterfaceOnly: isNonWiFiInterfaceEnabled = true
isNonWiFiInterfaceEnabled = true case .anyInterface(let onDemandSSIDOption):
case .anyInterface(let onDemandSSIDOption): isWiFiInterfaceEnabled = true
isWiFiInterfaceEnabled = true isNonWiFiInterfaceEnabled = true
isNonWiFiInterfaceEnabled = true (ssidOption, selectedSSIDs) = ssidViewModel(from: onDemandSSIDOption)
(ssidOption, selectedSSIDs) = ssidViewModel(from: onDemandSSIDOption)
}
} }
} }