summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--ios/MullvadVPN/TunnelManager/TunnelState.swift25
-rw-r--r--ios/MullvadVPN/View controllers/Tunnel/ConnectionView/ChipView/ChipFeature.swift9
-rw-r--r--ios/MullvadVPN/View controllers/Tunnel/ConnectionView/FeatureIndicatorsViewModel.swift4
3 files changed, 32 insertions, 6 deletions
diff --git a/ios/MullvadVPN/TunnelManager/TunnelState.swift b/ios/MullvadVPN/TunnelManager/TunnelState.swift
index 41702065a1..dafa26d099 100644
--- a/ios/MullvadVPN/TunnelManager/TunnelState.swift
+++ b/ios/MullvadVPN/TunnelManager/TunnelState.swift
@@ -146,6 +146,31 @@ enum TunnelState: Equatable, CustomStringConvertible, Sendable {
}
}
+ // the two accessors below return a Bool?, to differentiate known
+ // truth values from undefined/meaningless values, which the caller
+ // may want to interpret differently
+ var isPostQuantum: Bool? {
+ switch self {
+ case let .connecting(_, isPostQuantum: isPostQuantum, isDaita: _),
+ let .connected(_, isPostQuantum: isPostQuantum, isDaita: _),
+ let .reconnecting(_, isPostQuantum: isPostQuantum, isDaita: _):
+ isPostQuantum
+ default:
+ nil
+ }
+ }
+
+ var isDaita: Bool? {
+ switch self {
+ case let .connecting(_, isPostQuantum: _, isDaita: isDaita),
+ let .connected(_, isPostQuantum: _, isDaita: isDaita),
+ let .reconnecting(_, isPostQuantum: _, isDaita: isDaita):
+ isDaita
+ default:
+ nil
+ }
+ }
+
var isMultihop: Bool {
relays?.entry != nil
}
diff --git a/ios/MullvadVPN/View controllers/Tunnel/ConnectionView/ChipView/ChipFeature.swift b/ios/MullvadVPN/View controllers/Tunnel/ConnectionView/ChipView/ChipFeature.swift
index 5130d51764..64d5d0b77f 100644
--- a/ios/MullvadVPN/View controllers/Tunnel/ConnectionView/ChipView/ChipFeature.swift
+++ b/ios/MullvadVPN/View controllers/Tunnel/ConnectionView/ChipView/ChipFeature.swift
@@ -19,10 +19,10 @@ protocol ChipFeature {
}
struct DaitaFeature: ChipFeature {
- let settings: LatestTunnelSettings
+ let state: TunnelState
var isEnabled: Bool {
- settings.daita.daitaState.isEnabled
+ state.isDaita ?? false
}
var name: String {
@@ -36,9 +36,10 @@ struct DaitaFeature: ChipFeature {
}
struct QuantumResistanceFeature: ChipFeature {
- let settings: LatestTunnelSettings
+ let state: TunnelState
+
var isEnabled: Bool {
- settings.tunnelQuantumResistance.isEnabled
+ state.isPostQuantum ?? false
}
var name: String {
diff --git a/ios/MullvadVPN/View controllers/Tunnel/ConnectionView/FeatureIndicatorsViewModel.swift b/ios/MullvadVPN/View controllers/Tunnel/ConnectionView/FeatureIndicatorsViewModel.swift
index de1a9edab7..efd49fb9a7 100644
--- a/ios/MullvadVPN/View controllers/Tunnel/ConnectionView/FeatureIndicatorsViewModel.swift
+++ b/ios/MullvadVPN/View controllers/Tunnel/ConnectionView/FeatureIndicatorsViewModel.swift
@@ -34,8 +34,8 @@ class FeatureIndicatorsViewModel: ChipViewModelProtocol {
case .connecting, .reconnecting, .negotiatingEphemeralPeer,
.connected, .pendingReconnect:
let features: [ChipFeature] = [
- DaitaFeature(settings: tunnelSettings),
- QuantumResistanceFeature(settings: tunnelSettings),
+ DaitaFeature(state: tunnelState),
+ QuantumResistanceFeature(state: tunnelState),
MultihopFeature(settings: tunnelSettings, state: tunnelState),
ObfuscationFeature(settings: tunnelSettings, state: observedState),
DNSFeature(settings: tunnelSettings),