aboutsummaryrefslogtreecommitdiffstats
path: root/WireGuard/WireGuard/UI/TunnelViewModel.swift
diff options
context:
space:
mode:
authorRoopesh Chander <roop@roopc.net>2018-11-10 18:50:09 +0530
committerRoopesh Chander <roop@roopc.net>2018-11-11 01:18:36 +0530
commitc5e8b05e8b1a56785b5acb54eb4797029f0fda9e (patch)
tree4e21da8b89bc2470c1b6ae82172718f43775f0e3 /WireGuard/WireGuard/UI/TunnelViewModel.swift
parentModel: Add activationType to tunnel configuration (diff)
downloadwireguard-apple-c5e8b05e8b1a56785b5acb54eb4797029f0fda9e.tar.xz
wireguard-apple-c5e8b05e8b1a56785b5acb54eb4797029f0fda9e.zip
Tunnel edit, Tunnel view model: UI for providing On-Demand activation options
Signed-off-by: Roopesh Chander <roop@roopc.net>
Diffstat (limited to 'WireGuard/WireGuard/UI/TunnelViewModel.swift')
-rw-r--r--WireGuard/WireGuard/UI/TunnelViewModel.swift16
1 files changed, 16 insertions, 0 deletions
diff --git a/WireGuard/WireGuard/UI/TunnelViewModel.swift b/WireGuard/WireGuard/UI/TunnelViewModel.swift
index 94e3e6d..bfcfb15 100644
--- a/WireGuard/WireGuard/UI/TunnelViewModel.swift
+++ b/WireGuard/WireGuard/UI/TunnelViewModel.swift
@@ -372,6 +372,7 @@ class TunnelViewModel {
var interfaceData: InterfaceData
var peersData: [PeerData]
+ var activationType: ActivationType
init(tunnelConfiguration: TunnelConfiguration?) {
let interfaceData: InterfaceData = InterfaceData()
@@ -391,6 +392,20 @@ class TunnelViewModel {
}
self.interfaceData = interfaceData
self.peersData = peersData
+ self.activationType = tunnelConfiguration?.activationType ?? .activateManually
+ }
+
+ func activateOnDemandOptionText(for activationType: ActivationType) -> String {
+ switch (activationType) {
+ case .activateManually:
+ return ""
+ case .useOnDemandOverWifiAndCellular:
+ return "Over wifi and cellular"
+ case .useOnDemandOverWifiOnly:
+ return "Over wifi only"
+ case .useOnDemandOverCellularOnly:
+ return "Over cellular only"
+ }
}
func appendEmptyPeer() {
@@ -442,6 +457,7 @@ class TunnelViewModel {
}
let tunnelConfiguration = TunnelConfiguration(interface: interfaceConfiguration, peers: peerConfigurations)
+ tunnelConfiguration.activationType = self.activationType
return .saved(tunnelConfiguration)
}
}