aboutsummaryrefslogtreecommitdiffstats
path: root/WireGuard/WireGuard/UI/ActivateOnDemandViewModel.swift
diff options
context:
space:
mode:
authorRoopesh Chander <roop@roopc.net>2019-03-05 19:25:17 +0530
committerJason A. Donenfeld <Jason@zx2c4.com>2019-03-18 06:46:55 +0100
commit01604dd8d14de79689a7d3fd454f41c4e0d2452f (patch)
treee56840e4ad3da6fe10cba7c37f84b3a48ec8e22f /WireGuard/WireGuard/UI/ActivateOnDemandViewModel.swift
parenton-demand: iOS: Add ability to add current SSID (diff)
downloadwireguard-apple-01604dd8d14de79689a7d3fd454f41c4e0d2452f.tar.xz
wireguard-apple-01604dd8d14de79689a7d3fd454f41c4e0d2452f.zip
on-demand: iOS: Tunnel detail: Show SSID info
Signed-off-by: Roopesh Chander <roop@roopc.net>
Diffstat (limited to '')
-rw-r--r--WireGuard/WireGuard/UI/ActivateOnDemandViewModel.swift46
1 files changed, 41 insertions, 5 deletions
diff --git a/WireGuard/WireGuard/UI/ActivateOnDemandViewModel.swift b/WireGuard/WireGuard/UI/ActivateOnDemandViewModel.swift
index b5ce633..a852818 100644
--- a/WireGuard/WireGuard/UI/ActivateOnDemandViewModel.swift
+++ b/WireGuard/WireGuard/UI/ActivateOnDemandViewModel.swift
@@ -5,13 +5,15 @@ import Foundation
class ActivateOnDemandViewModel {
enum OnDemandField {
+ case onDemand
case nonWiFiInterface
case wiFiInterface
- case ssidDescription
- case ssidEdit
+ case ssid
var localizedUIString: String {
switch self {
+ case .onDemand:
+ return tr("tunnelOnDemandKey")
case .nonWiFiInterface:
#if os(iOS)
return tr("tunnelOnDemandCellular")
@@ -21,8 +23,7 @@ class ActivateOnDemandViewModel {
#error("Unimplemented")
#endif
case .wiFiInterface: return tr("tunnelOnDemandWiFi")
- case .ssidDescription: return tr("tunnelOnDemandSSIDDescription")
- case .ssidEdit: return tr("tunnelOnDemandSSIDEdit")
+ case .ssid: return tr("tunnelOnDemandSSIDsKey")
}
}
}
@@ -48,7 +49,15 @@ class ActivateOnDemandViewModel {
}
extension ActivateOnDemandViewModel {
- convenience init(from option: ActivateOnDemandOption) {
+ convenience init(setting: ActivateOnDemandSetting) {
+ if setting.isActivateOnDemandEnabled {
+ self.init(option: setting.activateOnDemandOption)
+ } else {
+ self.init(option: .none)
+ }
+ }
+
+ convenience init(option: ActivateOnDemandOption) {
self.init()
switch option {
case .none:
@@ -103,6 +112,33 @@ extension ActivateOnDemandViewModel {
}
}
+extension ActivateOnDemandViewModel {
+ var localizedInterfaceDescription: String {
+ switch (isWiFiInterfaceEnabled, isNonWiFiInterfaceEnabled) {
+ case (false, false):
+ return tr("tunnelOnDemandOptionOff")
+ case (true, false):
+ return tr("tunnelOnDemandOptionWiFiOnly")
+ case (false, true):
+ #if os(iOS)
+ return tr("tunnelOnDemandOptionCellularOnly")
+ #elseif os(macOS)
+ return tr("tunnelOnDemandOptionEthernetOnly")
+ #else
+ #error("Unimplemented")
+ #endif
+ case (true, true):
+ #if os(iOS)
+ return tr("tunnelOnDemandOptionWiFiOrCellular")
+ #elseif os(macOS)
+ return tr("tunnelOnDemandOptionWiFiOrEthernet")
+ #else
+ #error("Unimplemented")
+ #endif
+ }
+ }
+}
+
private extension ActivateOnDemandViewModel {
func ssidViewModel(from ssidOption: ActivateOnDemandSSIDOption) -> (OnDemandSSIDOption, [String]) {
switch ssidOption {