diff options
author | Roopesh Chander <roop@roopc.net> | 2019-03-05 19:25:17 +0530 |
---|---|---|
committer | Jason A. Donenfeld <Jason@zx2c4.com> | 2019-03-18 06:46:55 +0100 |
commit | 01604dd8d14de79689a7d3fd454f41c4e0d2452f (patch) | |
tree | e56840e4ad3da6fe10cba7c37f84b3a48ec8e22f /WireGuard/WireGuard/UI/ActivateOnDemandViewModel.swift | |
parent | on-demand: iOS: Add ability to add current SSID (diff) | |
download | wireguard-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.swift | 46 |
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 { |