diff --git a/v2rayN/ServiceLib/Services/UpdateService.cs b/v2rayN/ServiceLib/Services/UpdateService.cs index 9ccccdf7..8a3bac37 100644 --- a/v2rayN/ServiceLib/Services/UpdateService.cs +++ b/v2rayN/ServiceLib/Services/UpdateService.cs @@ -117,6 +117,11 @@ public class UpdateService(Config config, Func updateFunc) var msgs = new List(); foreach (var type in CoreInfoManager.Instance.GetCheckUpdateCoreTypes()) { + if (!(_config.CheckUpdateItem.SelectedCoreTypes?.Contains(type.ToString()) ?? true)) + { + continue; + } + var result = await CheckHasUpdateOnly(type, preRelease); if (result.Success && result.Version != null) { diff --git a/v2rayN/ServiceLib/ViewModels/CheckUpdateViewModel.cs b/v2rayN/ServiceLib/ViewModels/CheckUpdateViewModel.cs index f32e6d38..e2a8a3ce 100644 --- a/v2rayN/ServiceLib/ViewModels/CheckUpdateViewModel.cs +++ b/v2rayN/ServiceLib/ViewModels/CheckUpdateViewModel.cs @@ -36,7 +36,7 @@ public class CheckUpdateViewModel : MyReactiveObject this.WhenAnyValue( x => x.EnableCheckPreReleaseUpdate, y => y == true) - .Subscribe(c => _config.CheckUpdateItem.CheckPreReleaseUpdate = EnableCheckPreReleaseUpdate); + .Subscribe(c => _ = OnCheckPreReleaseUpdateChanged()); RefreshCheckUpdateItems(); } @@ -87,12 +87,23 @@ public class CheckUpdateViewModel : MyReactiveObject }; } + private async Task OnCheckPreReleaseUpdateChanged() + { + if (_config.CheckUpdateItem.CheckPreReleaseUpdate == EnableCheckPreReleaseUpdate) + { + return; + } + _config.CheckUpdateItem.CheckPreReleaseUpdate = EnableCheckPreReleaseUpdate; + await SaveSelectedCoreTypes(); + } + private async Task SaveSelectedCoreTypes() { - _config.CheckUpdateItem.SelectedCoreTypes = CheckUpdateModels - .Where(t => t.IsSelected == true) - .Select(t => t.CoreTypeForStorage) - .ToList(); + _config.CheckUpdateItem.SelectedCoreTypes = + CheckUpdateModels.Where(t => t.IsSelected == true) + .Select(t => t.CoreTypeForStorage) + .ToList(); + await ConfigHandler.SaveConfig(_config); }