This commit is contained in:
Diogo 2024-12-09 13:07:27 +00:00
parent 9b29afef3e
commit 43c356b9c2
3 changed files with 14 additions and 14 deletions

View file

@ -33,16 +33,16 @@ enum UserPickerSheet: Identifiable {
class SaveableSettings: ObservableObject {
@Published var servers: ServerSettings = ServerSettings(currUserServers: [], userServers: [], serverErrors: [])
@Published var advancedNetworkSettings: AdvancedNetworkSettingsConfig = AdvancedNetworkSettingsConfig.defaults
@Published var networkSettings: NetworkSettings = NetworkSettings.defaults
public func saveNetCfg() -> Bool {
do {
let netCfg = advancedNetworkSettings.netCfg
let netProxy = advancedNetworkSettings.netProxy
let netCfg = networkSettings.netCfg
let netProxy = networkSettings.netProxy
try setNetworkConfig(netCfg)
advancedNetworkSettings.currentNetCfg = netCfg
networkSettings.currentNetCfg = netCfg
setNetCfg(netCfg, networkProxy: netCfg.socksProxy != nil ? netProxy : nil)
advancedNetworkSettings.currentNetProxy = netProxy
networkSettings.currentNetProxy = netProxy
networkProxyDefault.set(netProxy)
return true
} catch let error {
@ -64,13 +64,13 @@ struct ServerSettings {
public var serverErrors: [UserServersError]
}
struct AdvancedNetworkSettingsConfig {
struct NetworkSettings {
public var currentNetCfg: NetCfg
public var netCfg: NetCfg
public var currentNetProxy: NetworkProxy
public var netProxy: NetworkProxy
static let defaults = AdvancedNetworkSettingsConfig(
static let defaults = NetworkSettings(
currentNetCfg: NetCfg.defaults,
netCfg: NetCfg.defaults,
currentNetProxy: networkProxyDefault.get(),
@ -126,7 +126,7 @@ struct UserPickerSheetView: View {
)
}
.onDisappear {
let advancedNetworkCanBeSaved = advancedNetworkSettingsCanBeSaved(ss.advancedNetworkSettings)
let advancedNetworkCanBeSaved = advancedNetworkSettingsCanBeSaved(ss.networkSettings)
let advancedNetworkSaveText = NSLocalizedString("Save and reconnect", comment: "alert button")
if serversCanBeSaved(

View file

@ -371,7 +371,7 @@ struct AdvancedNetworkSettings: View {
struct AdvancedNetworkSettings_Previews: PreviewProvider {
static var previews: some View {
let defaultSettings = AdvancedNetworkSettingsConfig.defaults
let defaultSettings = NetworkSettings.defaults
AdvancedNetworkSettings(
currentNetCfg: Binding.constant(defaultSettings.currentNetCfg),
netCfg: Binding.constant(defaultSettings.netCfg),

View file

@ -95,10 +95,10 @@ struct NetworkAndServers: View {
NavigationLink {
AdvancedNetworkSettings(
currentNetCfg: $ss.advancedNetworkSettings.currentNetCfg,
netCfg: $ss.advancedNetworkSettings.netCfg,
currentNetProxy: $ss.advancedNetworkSettings.currentNetProxy,
netProxy: $ss.advancedNetworkSettings.netProxy,
currentNetCfg: $ss.networkSettings.currentNetCfg,
netCfg: $ss.networkSettings.netCfg,
currentNetProxy: $ss.networkSettings.currentNetProxy,
netProxy: $ss.networkSettings.netProxy,
saveNetCfg: ss.saveNetCfg
)
.navigationTitle("Advanced settings")
@ -343,7 +343,7 @@ func serversCanBeSaved(
}
func advancedNetworkSettingsCanBeSaved(
_ config: AdvancedNetworkSettingsConfig
_ config: NetworkSettings
) -> Bool {
let useNetProxy = config.netCfg.socksProxy != nil
return (config.currentNetCfg != config.netCfg || config.currentNetProxy != config.netProxy) && (useNetProxy ? config.netProxy.valid : true)