mirror of
https://github.com/simplex-chat/simplex-chat.git
synced 2026-04-15 02:56:04 +00:00
move saveNetCfg to SaveableSettings
This commit is contained in:
@@ -34,6 +34,28 @@ enum UserPickerSheet: Identifiable {
|
||||
class SaveableSettings: ObservableObject {
|
||||
@Published var servers: ServerSettings = ServerSettings(currUserServers: [], userServers: [], serverErrors: [])
|
||||
@Published var advancedNetworkSettings: AdvancedNetworkSettingsConfig = AdvancedNetworkSettingsConfig.defaults
|
||||
|
||||
public func saveNetCfg() -> Bool {
|
||||
do {
|
||||
let netCfg = advancedNetworkSettings.netCfg
|
||||
let netProxy = advancedNetworkSettings.netProxy
|
||||
try setNetworkConfig(netCfg)
|
||||
advancedNetworkSettings.currentNetCfg = netCfg
|
||||
setNetCfg(netCfg, networkProxy: netCfg.socksProxy != nil ? netProxy : nil)
|
||||
advancedNetworkSettings.currentNetProxy = netProxy
|
||||
networkProxyDefault.set(netProxy)
|
||||
return true
|
||||
} catch let error {
|
||||
let err = responseError(error)
|
||||
showAlert(
|
||||
NSLocalizedString("Error updating settings", comment: "alert title"),
|
||||
message: responseError(error)
|
||||
)
|
||||
|
||||
logger.error("\(err)")
|
||||
return false
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
struct ServerSettings {
|
||||
@@ -47,12 +69,14 @@ struct AdvancedNetworkSettingsConfig {
|
||||
public var netCfg: NetCfg
|
||||
public var currentNetProxy: NetworkProxy
|
||||
public var netProxy: NetworkProxy
|
||||
public var saveRequested: Bool
|
||||
|
||||
static let defaults = AdvancedNetworkSettingsConfig(
|
||||
currentNetCfg: NetCfg.defaults,
|
||||
netCfg: NetCfg.defaults,
|
||||
currentNetProxy: networkProxyDefault.get(),
|
||||
netProxy: networkProxyDefault.get()
|
||||
netProxy: networkProxyDefault.get(),
|
||||
saveRequested: false
|
||||
)
|
||||
}
|
||||
|
||||
@@ -118,7 +142,7 @@ struct UserPickerSheetView: View {
|
||||
buttonAction: {
|
||||
saveServers($ss.servers.currUserServers, $ss.servers.userServers)
|
||||
if advancedNetworkCanBeSaved {
|
||||
_ = saveNetCfg()
|
||||
_ = ss.saveNetCfg()
|
||||
}
|
||||
},
|
||||
cancelButton: true
|
||||
@@ -127,35 +151,13 @@ struct UserPickerSheetView: View {
|
||||
showAlert(
|
||||
title: NSLocalizedString("Update network settings?", comment: "alert title"),
|
||||
buttonTitle: advancedNetworkSaveText,
|
||||
buttonAction: { _ = saveNetCfg() },
|
||||
buttonAction: { _ = ss.saveNetCfg() },
|
||||
cancelButton: true
|
||||
)
|
||||
}
|
||||
}
|
||||
.environmentObject(ss)
|
||||
}
|
||||
|
||||
private func saveNetCfg() -> Bool {
|
||||
do {
|
||||
let netCfg = ss.advancedNetworkSettings.netCfg
|
||||
let netProxy = ss.advancedNetworkSettings.netProxy
|
||||
try setNetworkConfig(netCfg)
|
||||
ss.advancedNetworkSettings.currentNetCfg = netCfg
|
||||
setNetCfg(netCfg, networkProxy: netCfg.socksProxy != nil ? netProxy : nil)
|
||||
ss.advancedNetworkSettings.currentNetProxy = netProxy
|
||||
networkProxyDefault.set(netProxy)
|
||||
return true
|
||||
} catch let error {
|
||||
let err = responseError(error)
|
||||
showAlert(
|
||||
NSLocalizedString("Error updating settings", comment: "alert title"),
|
||||
message: responseError(error)
|
||||
)
|
||||
|
||||
logger.error("\(err)")
|
||||
return false
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
struct ChatListView: View {
|
||||
|
||||
@@ -40,6 +40,7 @@ struct AdvancedNetworkSettings: View {
|
||||
@Binding public var netCfg: NetCfg
|
||||
@Binding public var currentNetProxy: NetworkProxy
|
||||
@Binding public var netProxy: NetworkProxy
|
||||
let saveNetCfg: () -> Bool
|
||||
|
||||
var body: some View {
|
||||
VStack {
|
||||
@@ -312,22 +313,6 @@ struct AdvancedNetworkSettings: View {
|
||||
}
|
||||
}
|
||||
|
||||
private func saveNetCfg() -> Bool {
|
||||
do {
|
||||
try setNetworkConfig(netCfg)
|
||||
currentNetCfg = netCfg
|
||||
setNetCfg(netCfg, networkProxy: useNetProxy ? netProxy : nil)
|
||||
currentNetProxy = netProxy
|
||||
networkProxyDefault.set(netProxy)
|
||||
return true
|
||||
} catch let error {
|
||||
let err = responseError(error)
|
||||
showSettingsAlert = .error(err: err)
|
||||
logger.error("\(err)")
|
||||
return false
|
||||
}
|
||||
}
|
||||
|
||||
private func intSettingPicker(_ title: LocalizedStringKey, selection: Binding<Int>, values: [Int], label: String) -> some View {
|
||||
Picker(title, selection: selection) {
|
||||
ForEach(values, id: \.self) { value in
|
||||
@@ -391,7 +376,8 @@ struct AdvancedNetworkSettings_Previews: PreviewProvider {
|
||||
currentNetCfg: Binding.constant(defaultSettings.currentNetCfg),
|
||||
netCfg: Binding.constant(defaultSettings.netCfg),
|
||||
currentNetProxy: Binding.constant(defaultSettings.currentNetProxy),
|
||||
netProxy: Binding.constant(defaultSettings.netProxy)
|
||||
netProxy: Binding.constant(defaultSettings.netProxy),
|
||||
saveNetCfg: { true }
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -98,7 +98,8 @@ struct NetworkAndServers: View {
|
||||
currentNetCfg: $ss.advancedNetworkSettings.currentNetCfg,
|
||||
netCfg: $ss.advancedNetworkSettings.netCfg,
|
||||
currentNetProxy: $ss.advancedNetworkSettings.currentNetProxy,
|
||||
netProxy: $ss.advancedNetworkSettings.netProxy
|
||||
netProxy: $ss.advancedNetworkSettings.netProxy,
|
||||
saveNetCfg: ss.saveNetCfg
|
||||
)
|
||||
.navigationTitle("Advanced settings")
|
||||
.modifier(ThemedBackground(grouped: true))
|
||||
|
||||
Reference in New Issue
Block a user