@@ -32,15 +32,15 @@ class AppState: ObservableObject {
32
32
33
33
@Published var useLiteralHeaders : Bool = UserDefaults . standard. bool ( forKey: Keys . useLiteralHeaders) {
34
34
didSet {
35
- if let onChange { onChange ( tunnelProviderProtocol ( ) ) }
35
+ reconfigure ( )
36
36
guard persistent else { return }
37
37
UserDefaults . standard. set ( useLiteralHeaders, forKey: Keys . useLiteralHeaders)
38
38
}
39
39
}
40
40
41
41
@Published var literalHeaders : [ LiteralHeader ] {
42
42
didSet {
43
- if let onChange { onChange ( tunnelProviderProtocol ( ) ) }
43
+ reconfigure ( )
44
44
guard persistent else { return }
45
45
try ? UserDefaults . standard. set ( JSONEncoder ( ) . encode ( literalHeaders) , forKey: Keys . literalHeaders)
46
46
}
@@ -70,9 +70,13 @@ class AppState: ObservableObject {
70
70
private let keychain : Keychain
71
71
private let persistent : Bool
72
72
73
- // This closure must be called when any property used to configure the VPN changes
74
73
let onChange : ( ( NETunnelProviderProtocol ? ) -> Void ) ?
75
74
75
+ // reconfigure must be called when any property used to configure the VPN changes
76
+ public func reconfigure( ) {
77
+ if let onChange { onChange ( tunnelProviderProtocol ( ) ) }
78
+ }
79
+
76
80
public init ( onChange: ( ( NETunnelProviderProtocol ? ) -> Void ) ? = nil ,
77
81
persistent: Bool = true )
78
82
{
@@ -97,13 +101,13 @@ class AppState: ObservableObject {
97
101
hasSession = true
98
102
self . baseAccessURL = baseAccessURL
99
103
self . sessionToken = sessionToken
100
- if let onChange { onChange ( tunnelProviderProtocol ( ) ) }
104
+ reconfigure ( )
101
105
}
102
106
103
107
public func clearSession( ) {
104
108
hasSession = false
105
109
sessionToken = nil
106
- if let onChange { onChange ( tunnelProviderProtocol ( ) ) }
110
+ reconfigure ( )
107
111
}
108
112
109
113
private func keychainGet( for key: String ) -> String ? {
0 commit comments