private void SetSettings(AppSettings settings) { __Settings = settings; __Settings.PropertyChanged += __Settings_PropertyChanged; Settings = new AppSettingsAdapter(__Settings); NetworkActions = new ObservableObject(__Settings.NetworkActions); __NetworksViewModel = new ViewModelNetworksSettings(__Settings.NetworkActions, this); NetworksViewModelObservable = new ObservableObject(__NetworksViewModel); __Observers = new List <IDisposable>(); __Observers.Add(Settings.AddObserver(new NSString("ProxyTypeId"), NSKeyValueObservingOptions.New, (NSObservedChange e) => { if (Window.FirstResponder is NSTextView) { UnfocusElement(); } })); __Observers.Add(Settings.AddObserver(new NSString("FirewallAllowLAN"), NSKeyValueObservingOptions.New, (NSObservedChange e) => { __MainViewModel.KillSwitchAllowLAN = __Settings.FirewallAllowLAN; })); __Observers.Add(Settings.AddObserver(new NSString("FirewallAllowLANMulticast"), NSKeyValueObservingOptions.New, (NSObservedChange e) => { __MainViewModel.KillSwitchAllowLANMulticast = __Settings.FirewallAllowLANMulticast; })); __Observers.Add(Settings.AddObserver(new NSString("ServiceUseObfsProxy"), NSKeyValueObservingOptions.New, (NSObservedChange e) => { __Service.Proxy.SetPreference("enable_obfsproxy", settings.ServiceUseObfsProxy ? "1" : "0"); })); __Observers.Add(Settings.AddObserver(new NSString("IsLoggingEnabled"), NSKeyValueObservingOptions.New, (NSObservedChange e) => { __Service.Proxy.SetPreference("enable_logging", settings.IsLoggingEnabled ? "1" : "0"); })); __Observers.Add(Settings.AddObserver(new NSString("FirewallTypeId"), NSKeyValueObservingOptions.New, (NSObservedChange e) => { bool isPersistent = settings.FirewallType == IVPNFirewallType.Persistent; __MainViewModel.KillSwitchIsPersistent = isPersistent; })); __Observers.Add(Settings.AddObserver(new NSString("OpenVPNExtraParameters"), NSKeyValueObservingOptions.New, (NSObservedChange e) => { if (!Helpers.OpenVPN.OpenVPNConfigChecker.IsIsUserParametersAllowed(settings.OpenVPNExtraParameters, out string errorDesc)) { IVPNAlert.Show(//this.Window, - do not use window argument (alert will be possible to show when window closing) __MainViewModel.AppServices.LocalizedString("OpenVPNParamsNotSupported", "Some OpenVPN additional parameters are not supported"), errorDesc, NSAlertStyle.Warning); return; } __Service.Proxy.SetPreference("open_vpn_extra_parameters", settings.OpenVPNExtraParameters); })); __Observers.Add(Settings.AddObserver(new NSString("StopServerOnClientDisconnect"), NSKeyValueObservingOptions.New, (NSObservedChange e) => { __Service.Proxy.SetPreference("is_stop_server_on_client_disconnect", __Settings.StopServerOnClientDisconnect ? "1" : "0"); })); }
private void SetSettings(AppSettings settings) { __Settings = settings; __Settings.PropertyChanged += __Settings_PropertyChanged; __MainViewModel.AppState.OnSessionChanged += AppState_OnSessionChanged; Settings = new AppSettingsAdapter(__Settings); NetworkActions = new ObservableObject(__Settings.NetworkActions); __NetworksViewModel = new ViewModelNetworksSettings(__Settings.NetworkActions, this); NetworksViewModelObservable = new ObservableObject(__NetworksViewModel); __Observers = new List <IDisposable>(); __Observers.Add(Settings.AddObserver(new NSString("ProxyTypeId"), NSKeyValueObservingOptions.New, (NSObservedChange e) => { if (Window.FirstResponder is NSTextView) { UnfocusElement(); } })); __Observers.Add(Settings.AddObserver(new NSString("FirewallAllowLAN"), NSKeyValueObservingOptions.New, (NSObservedChange e) => { __MainViewModel.KillSwitchAllowLAN = __Settings.FirewallAllowLAN; })); __Observers.Add(Settings.AddObserver(new NSString("FirewallAllowLANMulticast"), NSKeyValueObservingOptions.New, (NSObservedChange e) => { __MainViewModel.KillSwitchAllowLANMulticast = __Settings.FirewallAllowLANMulticast; })); __Observers.Add(Settings.AddObserver(new NSString("ServiceUseObfsProxy"), NSKeyValueObservingOptions.New, (NSObservedChange e) => { __Service.Proxy.SetPreference("enable_obfsproxy", settings.ServiceUseObfsProxy ? "1" : "0"); })); __Observers.Add(Settings.AddObserver(new NSString("IsLoggingEnabled"), NSKeyValueObservingOptions.New, (NSObservedChange e) => { __Service.Proxy.SetPreference("enable_logging", settings.IsLoggingEnabled ? "1" : "0"); })); __Observers.Add(Settings.AddObserver(new NSString("FirewallTypeId"), NSKeyValueObservingOptions.New, (NSObservedChange e) => { bool isPersistent = settings.FirewallType == IVPNFirewallType.Persistent; __MainViewModel.KillSwitchIsPersistent = isPersistent; })); __Observers.Add(Settings.AddObserver(new NSString("StopServerOnClientDisconnect"), NSKeyValueObservingOptions.New, (NSObservedChange e) => { __Service.Proxy.SetPreference("is_stop_server_on_client_disconnect", __Settings.StopServerOnClientDisconnect ? "1" : "0"); })); }