From e6f4a5791322dd6bcc9d7e3fa6136807d84f5114 Mon Sep 17 00:00:00 2001 From: 2dust <31833384+2dust@users.noreply.github.com> Date: Thu, 28 May 2026 14:31:01 +0800 Subject: [PATCH] Limit update checks to selected core types https://github.com/2dust/v2rayN/issues/9381 --- v2rayN/ServiceLib/Services/UpdateService.cs | 5 +++++ .../ViewModels/CheckUpdateViewModel.cs | 21 ++++++++++++++----- 2 files changed, 21 insertions(+), 5 deletions(-) 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); }