From 2cda2b53ed9343fec3c39e2d8eb66b2fc4910dd1 Mon Sep 17 00:00:00 2001 From: 2dust <31833384+2dust@users.noreply.github.com> Date: Thu, 7 Mar 2024 11:51:45 +0800 Subject: [PATCH] Improve --- v2rayN/v2rayN/Handler/CoreHandler.cs | 18 +++++++++--------- v2rayN/v2rayN/Handler/NoticeHandler.cs | 14 ++++++++------ .../v2rayN/ViewModels/MainWindowViewModel.cs | 4 ++++ 3 files changed, 21 insertions(+), 15 deletions(-) diff --git a/v2rayN/v2rayN/Handler/CoreHandler.cs b/v2rayN/v2rayN/Handler/CoreHandler.cs index fd02959b..3f6582dc 100644 --- a/v2rayN/v2rayN/Handler/CoreHandler.cs +++ b/v2rayN/v2rayN/Handler/CoreHandler.cs @@ -195,7 +195,7 @@ namespace v2rayN.Handler var coreInfo = LazyConfig.Instance.GetCoreInfo(coreType); var displayLog = node.configType != EConfigType.Custom || node.displayLog; - var proc = RunProcess(node, coreInfo, "", displayLog, ShowMsg); + var proc = RunProcess(node, coreInfo, "", displayLog); if (proc is null) { return; @@ -218,7 +218,7 @@ namespace v2rayN.Handler if (CoreConfigHandler.GenerateClientConfig(itemSocks, fileName2, out string msg2, out string configStr) == 0) { var coreInfo2 = LazyConfig.Instance.GetCoreInfo(ECoreType.sing_box); - var proc2 = RunProcess(node, coreInfo2, $" -c {Global.CorePreConfigFileName}", true, ShowMsg); + var proc2 = RunProcess(node, coreInfo2, $" -c {Global.CorePreConfigFileName}", true); if (proc2 is not null) { _processPre = proc2; @@ -236,7 +236,7 @@ namespace v2rayN.Handler try { var coreInfo = LazyConfig.Instance.GetCoreInfo(coreType); - var proc = RunProcess(new(), coreInfo, $" -c {Global.CoreSpeedtestConfigFileName}", true, ShowMsg); + var proc = RunProcess(new(), coreInfo, $" -c {Global.CoreSpeedtestConfigFileName}", true); if (proc is null) { return -1; @@ -253,16 +253,16 @@ namespace v2rayN.Handler } } - private void ShowMsg(bool updateToTrayTooltip, string msg) + private void ShowMsg(bool notify, string msg) { - _updateFunc(updateToTrayTooltip, msg); + _updateFunc(notify, msg); } #endregion Private #region Process - private Process? RunProcess(ProfileItem node, CoreInfo coreInfo, string configPath, bool displayLog, Action update) + private Process? RunProcess(ProfileItem node, CoreInfo coreInfo, string configPath, bool displayLog) { try { @@ -295,7 +295,7 @@ namespace v2rayN.Handler if (!string.IsNullOrEmpty(e.Data)) { string msg = e.Data + Environment.NewLine; - update(false, msg); + ShowMsg(false, msg); } }; proc.ErrorDataReceived += (sender, e) => @@ -303,7 +303,7 @@ namespace v2rayN.Handler if (!string.IsNullOrEmpty(e.Data)) { string msg = e.Data + Environment.NewLine; - update(false, msg); + ShowMsg(false, msg); if (!startUpSuccessful) { @@ -336,7 +336,7 @@ namespace v2rayN.Handler { Logging.SaveLog(ex.Message, ex); string msg = ex.Message; - update(true, msg); + ShowMsg(true, msg); return null; } } diff --git a/v2rayN/v2rayN/Handler/NoticeHandler.cs b/v2rayN/v2rayN/Handler/NoticeHandler.cs index 570308f6..4fe41b3f 100644 --- a/v2rayN/v2rayN/Handler/NoticeHandler.cs +++ b/v2rayN/v2rayN/Handler/NoticeHandler.cs @@ -10,12 +10,14 @@ namespace v2rayN.Handler public NoticeHandler(ISnackbarMessageQueue snackbarMessageQueue) { _snackbarMessageQueue = snackbarMessageQueue ?? throw new ArgumentNullException(nameof(snackbarMessageQueue)); - - //_snackbarMessageQueue = snackbarMessageQueue; } - public void Enqueue(object content) + public void Enqueue(string content) { + if (content.IsNullOrEmpty()) + { + return; + } _snackbarMessageQueue?.Enqueue(content); } @@ -27,13 +29,13 @@ namespace v2rayN.Handler public void SendMessage(string msg, bool time) { msg = $"{DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss")} {msg}"; - MessageBus.Current.SendMessage(msg, Global.CommandSendMsgView); + SendMessage(msg); } public void SendMessageAndEnqueue(string msg) { - _snackbarMessageQueue?.Enqueue(msg); - MessageBus.Current.SendMessage(msg, Global.CommandSendMsgView); + Enqueue(msg); + SendMessage(msg); } } } \ No newline at end of file diff --git a/v2rayN/v2rayN/ViewModels/MainWindowViewModel.cs b/v2rayN/v2rayN/ViewModels/MainWindowViewModel.cs index 1a272654..ea6d2e04 100644 --- a/v2rayN/v2rayN/ViewModels/MainWindowViewModel.cs +++ b/v2rayN/v2rayN/ViewModels/MainWindowViewModel.cs @@ -610,6 +610,10 @@ namespace v2rayN.ViewModels private void UpdateHandler(bool notify, string msg) { _noticeHandler?.SendMessage(msg); + if (notify) + { + _noticeHandler?.Enqueue(msg); + } } private void UpdateTaskHandler(bool success, string msg)