diff --git a/v2rayN/v2rayN/Handler/ConfigHandler.cs b/v2rayN/v2rayN/Handler/ConfigHandler.cs index 131bd9ae..2432e8ce 100644 --- a/v2rayN/v2rayN/Handler/ConfigHandler.cs +++ b/v2rayN/v2rayN/Handler/ConfigHandler.cs @@ -1089,8 +1089,8 @@ namespace v2rayN.Handler } continue; } - ProfileItem profileItem = ShareHandler.ImportFromClipboardConfig(str, out string msg); - if (profileItem == null) + var profileItem = ShareHandler.ImportFromClipboardConfig(str, out string msg); + if (profileItem is null) { continue; } @@ -1127,40 +1127,19 @@ namespace v2rayN.Handler } profileItem.subid = subid; profileItem.isSub = isSub; - var addStatus = -1; - if (profileItem.configType == EConfigType.VMess) + var addStatus = profileItem.configType switch { - addStatus = AddServer(config, profileItem, false); - } - else if (profileItem.configType == EConfigType.Shadowsocks) - { - addStatus = AddShadowsocksServer(config, profileItem, false); - } - else if (profileItem.configType == EConfigType.Socks) - { - addStatus = AddSocksServer(config, profileItem, false); - } - else if (profileItem.configType == EConfigType.Trojan) - { - addStatus = AddTrojanServer(config, profileItem, false); - } - else if (profileItem.configType == EConfigType.VLESS) - { - addStatus = AddVlessServer(config, profileItem, false); - } - else if (profileItem.configType == EConfigType.Hysteria2) - { - addStatus = AddHysteria2Server(config, profileItem, false); - } - else if (profileItem.configType == EConfigType.Tuic) - { - addStatus = AddTuicServer(config, profileItem, false); - } - else if (profileItem.configType == EConfigType.Wireguard) - { - addStatus = AddWireguardServer(config, profileItem, false); - } + EConfigType.VMess => AddServer(config, profileItem, false), + EConfigType.Shadowsocks => AddShadowsocksServer(config, profileItem, false), + EConfigType.Socks => AddSocksServer(config, profileItem, false), + EConfigType.Trojan => AddTrojanServer(config, profileItem, false), + EConfigType.VLESS => AddVlessServer(config, profileItem, false), + EConfigType.Hysteria2 => AddHysteria2Server(config, profileItem, false), + EConfigType.Tuic => AddTuicServer(config, profileItem, false), + EConfigType.Wireguard => AddWireguardServer(config, profileItem, false), + _ => -1, + }; if (addStatus == 0) { diff --git a/v2rayN/v2rayN/Handler/ShareHandler.cs b/v2rayN/v2rayN/Handler/ShareHandler.cs index 16508c93..d68895d8 100644 --- a/v2rayN/v2rayN/Handler/ShareHandler.cs +++ b/v2rayN/v2rayN/Handler/ShareHandler.cs @@ -385,14 +385,12 @@ namespace v2rayN.Handler /// public static ProfileItem? ImportFromClipboardConfig(string clipboardData, out string msg) { - msg = string.Empty; - + msg = ResUI.ConfigurationFormatIncorrect; ProfileItem? profileItem; try { - //载入配置文件 - string result = clipboardData.TrimEx();// Utils.GetClipboardData(); + string result = clipboardData.TrimEx(); if (Utils.IsNullOrEmpty(result)) { msg = ResUI.FailedReadConfiguration; @@ -413,8 +411,6 @@ namespace v2rayN.Handler } else if (result.StartsWith(Global.ProtocolShares[EConfigType.Shadowsocks])) { - msg = ResUI.ConfigurationFormatIncorrect; - profileItem = ResolveSSLegacy(result) ?? ResolveSip002(result); if (profileItem == null) { @@ -429,8 +425,6 @@ namespace v2rayN.Handler } else if (result.StartsWith(Global.ProtocolShares[EConfigType.Socks])) { - msg = ResUI.ConfigurationFormatIncorrect; - profileItem = ResolveSocksNew(result) ?? ResolveSocks(result); if (profileItem == null) { @@ -445,8 +439,6 @@ namespace v2rayN.Handler } else if (result.StartsWith(Global.ProtocolShares[EConfigType.Trojan])) { - msg = ResUI.ConfigurationFormatIncorrect; - profileItem = ResolveTrojan(result); } else if (result.StartsWith(Global.ProtocolShares[EConfigType.VLESS])) @@ -455,8 +447,6 @@ namespace v2rayN.Handler } else if (result.StartsWith(Global.ProtocolShares[EConfigType.Hysteria2]) || result.StartsWith(Global.Hysteria2ProtocolShare)) { - msg = ResUI.ConfigurationFormatIncorrect; - profileItem = ResolveHysteria2(result); } else if (result.StartsWith(Global.ProtocolShares[EConfigType.Tuic])) diff --git a/v2rayN/v2rayN/Handler/UpdateHandle.cs b/v2rayN/v2rayN/Handler/UpdateHandle.cs index d7d977a2..bf541c0b 100644 --- a/v2rayN/v2rayN/Handler/UpdateHandle.cs +++ b/v2rayN/v2rayN/Handler/UpdateHandle.cs @@ -86,7 +86,10 @@ namespace v2rayN.Handler _updateFunc(false, args.Msg); url = args.Url; - _ = askToDownload(downloadHandle, url, true); + AskToDownload(downloadHandle, url, true).ContinueWith(task => + { + _updateFunc(false, url); + }); } else { @@ -139,7 +142,10 @@ namespace v2rayN.Handler _updateFunc(false, args.Msg); url = args.Url; - _ = askToDownload(downloadHandle, url, true); + AskToDownload(downloadHandle, url, true).ContinueWith(task => + { + _updateFunc(false, url); + }); } else { @@ -527,7 +533,7 @@ namespace v2rayN.Handler } } - private async Task askToDownload(DownloadHandle downloadHandle, string url, bool blAsk) + private async Task AskToDownload(DownloadHandle downloadHandle, string url, bool blAsk) { bool blDownload = false; if (blAsk) @@ -591,7 +597,7 @@ namespace v2rayN.Handler { _updateFunc(false, args.GetException().Message); }; - await askToDownload(downloadHandle, url, false); + await AskToDownload(downloadHandle, url, false); } private async Task UpdateGeoFile4Singbox(string geoName, Config config, bool needStop, Action update) @@ -639,7 +645,7 @@ namespace v2rayN.Handler { _updateFunc(false, args.GetException().Message); }; - await askToDownload(downloadHandle, url, false); + await AskToDownload(downloadHandle, url, false); } #endregion private diff --git a/v2rayN/v2rayN/ViewModels/AddServerViewModel.cs b/v2rayN/v2rayN/ViewModels/AddServerViewModel.cs index 6660bc2e..a81a2dc0 100644 --- a/v2rayN/v2rayN/ViewModels/AddServerViewModel.cs +++ b/v2rayN/v2rayN/ViewModels/AddServerViewModel.cs @@ -122,41 +122,18 @@ namespace v2rayN.ViewModels item.spiderX = SelectedSource.spiderX; } - int ret = -1; - switch (item.configType) + var ret = item.configType switch { - case EConfigType.VMess: - ret = ConfigHandler.AddServer(_config, item); - break; - - case EConfigType.Shadowsocks: - ret = ConfigHandler.AddShadowsocksServer(_config, item); - break; - - case EConfigType.Socks: - ret = ConfigHandler.AddSocksServer(_config, item); - break; - - case EConfigType.VLESS: - ret = ConfigHandler.AddVlessServer(_config, item); - break; - - case EConfigType.Trojan: - ret = ConfigHandler.AddTrojanServer(_config, item); - break; - - case EConfigType.Hysteria2: - ret = ConfigHandler.AddHysteria2Server(_config, item); - break; - - case EConfigType.Tuic: - ret = ConfigHandler.AddTuicServer(_config, item); - break; - - case EConfigType.Wireguard: - ret = ConfigHandler.AddWireguardServer(_config, item); - break; - } + EConfigType.VMess => ConfigHandler.AddServer(_config, item), + EConfigType.Shadowsocks => ConfigHandler.AddShadowsocksServer(_config, item), + EConfigType.Socks => ConfigHandler.AddSocksServer(_config, item), + EConfigType.Trojan => ConfigHandler.AddTrojanServer(_config, item), + EConfigType.VLESS => ConfigHandler.AddVlessServer(_config, item), + EConfigType.Hysteria2 => ConfigHandler.AddHysteria2Server(_config, item), + EConfigType.Tuic => ConfigHandler.AddTuicServer(_config, item), + EConfigType.Wireguard => ConfigHandler.AddWireguardServer(_config, item), + _ => -1, + }; if (ret == 0) { diff --git a/v2rayN/v2rayN/ViewModels/MainWindowViewModel.cs b/v2rayN/v2rayN/ViewModels/MainWindowViewModel.cs index 78278658..52419d19 100644 --- a/v2rayN/v2rayN/ViewModels/MainWindowViewModel.cs +++ b/v2rayN/v2rayN/ViewModels/MainWindowViewModel.cs @@ -1482,16 +1482,21 @@ namespace v2rayN.ViewModels public void Reload() { - _ = LoadV2ray(); + BlReloadEnabled = false; + + LoadV2ray().ContinueWith(task => + { + TestServerAvailability(); + + Application.Current.Dispatcher.Invoke((Action)(() => + { + BlReloadEnabled = true; + })); + }); } private async Task LoadV2ray() { - Application.Current.Dispatcher.Invoke((Action)(() => - { - BlReloadEnabled = false; - })); - await Task.Run(() => { _coreHandler.LoadCore(); @@ -1500,13 +1505,6 @@ namespace v2rayN.ViewModels ChangeSystemProxyStatus(_config.sysProxyType, false); }); - - TestServerAvailability(); - - Application.Current.Dispatcher.Invoke((Action)(() => - { - BlReloadEnabled = true; - })); } private void CloseV2ray() diff --git a/v2rayN/v2rayN/ViewModels/RoutingRuleSettingViewModel.cs b/v2rayN/v2rayN/ViewModels/RoutingRuleSettingViewModel.cs index 23dcc2e4..a35dafb2 100644 --- a/v2rayN/v2rayN/ViewModels/RoutingRuleSettingViewModel.cs +++ b/v2rayN/v2rayN/ViewModels/RoutingRuleSettingViewModel.cs @@ -306,7 +306,7 @@ namespace v2rayN.ViewModels } DownloadHandle downloadHandle = new DownloadHandle(); - string result = await downloadHandle.TryDownloadString(url, true, ""); + var result = await downloadHandle.TryDownloadString(url, true, ""); if (AddBatchRoutingRules(SelectedRouting, result) == 0) { Application.Current.Dispatcher.Invoke((Action)(() => @@ -317,7 +317,7 @@ namespace v2rayN.ViewModels } } - private int AddBatchRoutingRules(RoutingItem routingItem, string clipboardData) + private int AddBatchRoutingRules(RoutingItem routingItem, string? clipboardData) { bool blReplace = false; if (UI.ShowYesNo(ResUI.AddBatchRoutingRulesYesNo) == MessageBoxResult.No) diff --git a/v2rayN/v2rayN/Views/MainWindow.xaml.cs b/v2rayN/v2rayN/Views/MainWindow.xaml.cs index 503e9bc2..e5745e8b 100644 --- a/v2rayN/v2rayN/Views/MainWindow.xaml.cs +++ b/v2rayN/v2rayN/Views/MainWindow.xaml.cs @@ -342,7 +342,7 @@ namespace v2rayN.Views break; case Key.S: - _ = ViewModel?.ScanScreenTaskAsync(); + ViewModel?.ScanScreenTaskAsync().ContinueWith(_ => { }); break; case Key.T: