Update dep (#8926)
Some checks are pending
release Linux / build (Release) (push) Waiting to run
release Linux / rpm (push) Blocked by required conditions
release macOS / build (Release) (push) Waiting to run
release Windows desktop (Avalonia UI) / build (Release) (push) Waiting to run
release Windows / build (Release) (push) Waiting to run

This commit is contained in:
DHR60 2026-03-12 12:45:28 +00:00 committed by GitHub
parent 5cf3d6eff6
commit 0f4031f445
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
18 changed files with 52 additions and 46 deletions

View file

@ -9,18 +9,18 @@
<PackageVersion Include="Avalonia.Controls.DataGrid" Version="11.3.12" /> <PackageVersion Include="Avalonia.Controls.DataGrid" Version="11.3.12" />
<PackageVersion Include="Avalonia.Desktop" Version="11.3.12" /> <PackageVersion Include="Avalonia.Desktop" Version="11.3.12" />
<PackageVersion Include="Avalonia.Diagnostics" Version="11.3.12" /> <PackageVersion Include="Avalonia.Diagnostics" Version="11.3.12" />
<PackageVersion Include="ReactiveUI.Avalonia" Version="11.3.8" /> <PackageVersion Include="ReactiveUI.Avalonia" Version="11.4.12" />
<PackageVersion Include="CliWrap" Version="3.10.0" /> <PackageVersion Include="CliWrap" Version="3.10.0" />
<PackageVersion Include="Downloader" Version="4.1.1" /> <PackageVersion Include="Downloader" Version="5.1.0" />
<PackageVersion Include="H.NotifyIcon.Wpf" Version="2.4.1" /> <PackageVersion Include="H.NotifyIcon.Wpf" Version="2.4.1" />
<PackageVersion Include="MaterialDesignThemes" Version="5.3.0" /> <PackageVersion Include="MaterialDesignThemes" Version="5.3.0" />
<PackageVersion Include="MessageBox.Avalonia" Version="3.3.1.1" /> <PackageVersion Include="MessageBox.Avalonia" Version="3.3.1.1" />
<PackageVersion Include="QRCoder" Version="1.7.0" /> <PackageVersion Include="QRCoder" Version="1.7.0" />
<PackageVersion Include="ReactiveUI" Version="22.3.1" /> <PackageVersion Include="ReactiveUI" Version="23.1.8" />
<PackageVersion Include="ReactiveUI.Fody" Version="19.5.41" /> <PackageVersion Include="ReactiveUI.Fody" Version="19.5.41" />
<PackageVersion Include="ReactiveUI.WPF" Version="22.3.1" /> <PackageVersion Include="ReactiveUI.WPF" Version="23.1.8" />
<PackageVersion Include="Semi.Avalonia" Version="11.3.7.3" /> <PackageVersion Include="Semi.Avalonia" Version="11.3.7.3" />
<PackageVersion Include="Semi.Avalonia.AvaloniaEdit" Version="11.2.0.1" /> <PackageVersion Include="Semi.Avalonia.AvaloniaEdit" Version="11.2.0.2" />
<PackageVersion Include="Semi.Avalonia.DataGrid" Version="11.3.7.3" /> <PackageVersion Include="Semi.Avalonia.DataGrid" Version="11.3.7.3" />
<PackageVersion Include="NLog" Version="6.1.1" /> <PackageVersion Include="NLog" Version="6.1.1" />
<PackageVersion Include="sqlite-net-pcl" Version="1.9.172" /> <PackageVersion Include="sqlite-net-pcl" Version="1.9.172" />

View file

@ -204,7 +204,7 @@ public class CheckUpdateViewModel : MyReactiveObject
private async Task UpdateFinishedSub(bool blReload) private async Task UpdateFinishedSub(bool blReload)
{ {
RxApp.MainThreadScheduler.Schedule(blReload, (scheduler, blReload) => RxSchedulers.MainThreadScheduler.Schedule(blReload, (scheduler, blReload) =>
{ {
_ = UpdateFinishedResult(blReload); _ = UpdateFinishedResult(blReload);
return Disposable.Empty; return Disposable.Empty;
@ -317,7 +317,7 @@ public class CheckUpdateViewModel : MyReactiveObject
Remarks = msg, Remarks = msg,
}; };
RxApp.MainThreadScheduler.Schedule(item, (scheduler, model) => RxSchedulers.MainThreadScheduler.Schedule(item, (scheduler, model) =>
{ {
_ = UpdateViewResult(model); _ = UpdateViewResult(model);
return Disposable.Empty; return Disposable.Empty;

View file

@ -56,7 +56,7 @@ public class ClashConnectionsViewModel : MyReactiveObject
return; return;
} }
RxApp.MainThreadScheduler.Schedule(ret?.connections, (scheduler, model) => RxSchedulers.MainThreadScheduler.Schedule(ret?.connections, (scheduler, model) =>
{ {
_ = RefreshConnections(model); _ = RefreshConnections(model);
return Disposable.Empty; return Disposable.Empty;

View file

@ -90,7 +90,7 @@ public class ClashProxiesViewModel : MyReactiveObject
AppEvents.ProxiesReloadRequested AppEvents.ProxiesReloadRequested
.AsObservable() .AsObservable()
.ObserveOn(RxApp.MainThreadScheduler) .ObserveOn(RxSchedulers.MainThreadScheduler)
.Subscribe(async _ => await ProxiesReload()); .Subscribe(async _ => await ProxiesReload());
#endregion AppEvents #endregion AppEvents
@ -173,7 +173,7 @@ public class ClashProxiesViewModel : MyReactiveObject
if (refreshUI) if (refreshUI)
{ {
RxApp.MainThreadScheduler.Schedule(() => _ = RefreshProxyGroups()); RxSchedulers.MainThreadScheduler.Schedule(() => _ = RefreshProxyGroups());
} }
} }
@ -387,7 +387,7 @@ public class ClashProxiesViewModel : MyReactiveObject
} }
var model = new SpeedTestResult() { IndexId = item.Name, Delay = result }; var model = new SpeedTestResult() { IndexId = item.Name, Delay = result };
RxApp.MainThreadScheduler.Schedule(model, (scheduler, model) => RxSchedulers.MainThreadScheduler.Schedule(model, (scheduler, model) =>
{ {
_ = ProxiesDelayTestResult(model); _ = ProxiesDelayTestResult(model);
return Disposable.Empty; return Disposable.Empty;

View file

@ -228,22 +228,22 @@ public class MainWindowViewModel : MyReactiveObject
AppEvents.ReloadRequested AppEvents.ReloadRequested
.AsObservable() .AsObservable()
.ObserveOn(RxApp.MainThreadScheduler) .ObserveOn(RxSchedulers.MainThreadScheduler)
.Subscribe(async _ => await Reload()); .Subscribe(async _ => await Reload());
AppEvents.AddServerViaScanRequested AppEvents.AddServerViaScanRequested
.AsObservable() .AsObservable()
.ObserveOn(RxApp.MainThreadScheduler) .ObserveOn(RxSchedulers.MainThreadScheduler)
.Subscribe(async _ => await AddServerViaScanAsync()); .Subscribe(async _ => await AddServerViaScanAsync());
AppEvents.AddServerViaClipboardRequested AppEvents.AddServerViaClipboardRequested
.AsObservable() .AsObservable()
.ObserveOn(RxApp.MainThreadScheduler) .ObserveOn(RxSchedulers.MainThreadScheduler)
.Subscribe(async _ => await AddServerViaClipboardAsync(null)); .Subscribe(async _ => await AddServerViaClipboardAsync(null));
AppEvents.SubscriptionsUpdateRequested AppEvents.SubscriptionsUpdateRequested
.AsObservable() .AsObservable()
.ObserveOn(RxApp.MainThreadScheduler) .ObserveOn(RxSchedulers.MainThreadScheduler)
.Subscribe(async blProxy => await UpdateSubscriptionProcess("", blProxy)); .Subscribe(async blProxy => await UpdateSubscriptionProcess("", blProxy));
#endregion AppEvents #endregion AppEvents
@ -583,7 +583,7 @@ public class MainWindowViewModel : MyReactiveObject
private void ReloadResult(bool showClashUI) private void ReloadResult(bool showClashUI)
{ {
RxApp.MainThreadScheduler.Schedule(() => RxSchedulers.MainThreadScheduler.Schedule(() =>
{ {
ShowClashUI = showClashUI; ShowClashUI = showClashUI;
TabMainSelectedIndex = showClashUI ? TabMainSelectedIndex : 0; TabMainSelectedIndex = showClashUI ? TabMainSelectedIndex : 0;
@ -592,7 +592,7 @@ public class MainWindowViewModel : MyReactiveObject
private void SetReloadEnabled(bool enabled) private void SetReloadEnabled(bool enabled)
{ {
RxApp.MainThreadScheduler.Schedule(() => BlReloadEnabled = enabled); RxSchedulers.MainThreadScheduler.Schedule(() => BlReloadEnabled = enabled);
} }
private async Task LoadCore(CoreConfigContext? mainContext, CoreConfigContext? preContext) private async Task LoadCore(CoreConfigContext? mainContext, CoreConfigContext? preContext)

View file

@ -31,7 +31,7 @@ public class MsgViewModel : MyReactiveObject
AppEvents.SendMsgViewRequested AppEvents.SendMsgViewRequested
.AsObservable() .AsObservable()
//.ObserveOn(RxApp.MainThreadScheduler) //.ObserveOn(RxSchedulers.MainThreadScheduler)
.Subscribe(content => _ = AppendQueueMsg(content)); .Subscribe(content => _ = AppendQueueMsg(content));
} }

View file

@ -228,22 +228,22 @@ public class ProfilesViewModel : MyReactiveObject
AppEvents.ProfilesRefreshRequested AppEvents.ProfilesRefreshRequested
.AsObservable() .AsObservable()
.ObserveOn(RxApp.MainThreadScheduler) .ObserveOn(RxSchedulers.MainThreadScheduler)
.Subscribe(async _ => await RefreshServersBiz()); .Subscribe(async _ => await RefreshServersBiz());
AppEvents.SubscriptionsRefreshRequested AppEvents.SubscriptionsRefreshRequested
.AsObservable() .AsObservable()
.ObserveOn(RxApp.MainThreadScheduler) .ObserveOn(RxSchedulers.MainThreadScheduler)
.Subscribe(async _ => await RefreshSubscriptions()); .Subscribe(async _ => await RefreshSubscriptions());
AppEvents.DispatcherStatisticsRequested AppEvents.DispatcherStatisticsRequested
.AsObservable() .AsObservable()
.ObserveOn(RxApp.MainThreadScheduler) .ObserveOn(RxSchedulers.MainThreadScheduler)
.Subscribe(async result => await UpdateStatistics(result)); .Subscribe(async result => await UpdateStatistics(result));
AppEvents.SetDefaultServerRequested AppEvents.SetDefaultServerRequested
.AsObservable() .AsObservable()
.ObserveOn(RxApp.MainThreadScheduler) .ObserveOn(RxSchedulers.MainThreadScheduler)
.Subscribe(async indexId => await SetDefaultServer(indexId)); .Subscribe(async indexId => await SetDefaultServer(indexId));
#endregion AppEvents #endregion AppEvents
@ -732,7 +732,7 @@ public class ProfilesViewModel : MyReactiveObject
_speedtestService ??= new SpeedtestService(_config, async (SpeedTestResult result) => _speedtestService ??= new SpeedtestService(_config, async (SpeedTestResult result) =>
{ {
RxApp.MainThreadScheduler.Schedule(result, (scheduler, result) => RxSchedulers.MainThreadScheduler.Schedule(result, (scheduler, result) =>
{ {
_ = SetSpeedTestResult(result); _ = SetSpeedTestResult(result);
return Disposable.Empty; return Disposable.Empty;

View file

@ -200,27 +200,27 @@ public class StatusBarViewModel : MyReactiveObject
AppEvents.DispatcherStatisticsRequested AppEvents.DispatcherStatisticsRequested
.AsObservable() .AsObservable()
.ObserveOn(RxApp.MainThreadScheduler) .ObserveOn(RxSchedulers.MainThreadScheduler)
.Subscribe(async result => await UpdateStatistics(result)); .Subscribe(async result => await UpdateStatistics(result));
AppEvents.RoutingsMenuRefreshRequested AppEvents.RoutingsMenuRefreshRequested
.AsObservable() .AsObservable()
.ObserveOn(RxApp.MainThreadScheduler) .ObserveOn(RxSchedulers.MainThreadScheduler)
.Subscribe(async _ => await RefreshRoutingsMenu()); .Subscribe(async _ => await RefreshRoutingsMenu());
AppEvents.TestServerRequested AppEvents.TestServerRequested
.AsObservable() .AsObservable()
.ObserveOn(RxApp.MainThreadScheduler) .ObserveOn(RxSchedulers.MainThreadScheduler)
.Subscribe(async _ => await TestServerAvailability()); .Subscribe(async _ => await TestServerAvailability());
AppEvents.InboundDisplayRequested AppEvents.InboundDisplayRequested
.AsObservable() .AsObservable()
.ObserveOn(RxApp.MainThreadScheduler) .ObserveOn(RxSchedulers.MainThreadScheduler)
.Subscribe(async _ => await InboundDisplayStatus()); .Subscribe(async _ => await InboundDisplayStatus());
AppEvents.SysProxyChangeRequested AppEvents.SysProxyChangeRequested
.AsObservable() .AsObservable()
.ObserveOn(RxApp.MainThreadScheduler) .ObserveOn(RxSchedulers.MainThreadScheduler)
.Subscribe(async result => await SetListenerType(result)); .Subscribe(async result => await SetListenerType(result));
#endregion AppEvents #endregion AppEvents
@ -243,7 +243,7 @@ public class StatusBarViewModel : MyReactiveObject
{ {
AppEvents.ProfilesRefreshRequested AppEvents.ProfilesRefreshRequested
.AsObservable() .AsObservable()
.ObserveOn(RxApp.MainThreadScheduler) .ObserveOn(RxSchedulers.MainThreadScheduler)
.Subscribe(async _ => await RefreshServersBiz()); //.DisposeWith(_disposables); .Subscribe(async _ => await RefreshServersBiz()); //.DisposeWith(_disposables);
} }
} }
@ -362,7 +362,7 @@ public class StatusBarViewModel : MyReactiveObject
private async Task TestServerAvailabilitySub(string msg) private async Task TestServerAvailabilitySub(string msg)
{ {
RxApp.MainThreadScheduler.Schedule(msg, (scheduler, msg) => RxSchedulers.MainThreadScheduler.Schedule(msg, (scheduler, msg) =>
{ {
_ = TestServerAvailabilityResult(msg); _ = TestServerAvailabilityResult(msg);
return Disposable.Empty; return Disposable.Empty;

View file

@ -59,7 +59,7 @@ internal class Program
//.WithInterFont() //.WithInterFont()
.WithFontByDefault() .WithFontByDefault()
.LogToTrace() .LogToTrace()
.UseReactiveUI(); .UseReactiveUI(_ => { });
if (OperatingSystem.IsMacOS()) if (OperatingSystem.IsMacOS())
{ {

View file

@ -28,7 +28,7 @@ public partial class ClashConnectionsView : ReactiveUserControl<ClashConnections
AppEvents.AppExitRequested AppEvents.AppExitRequested
.AsObservable() .AsObservable()
.ObserveOn(RxApp.MainThreadScheduler) .ObserveOn(RxSchedulers.MainThreadScheduler)
.Subscribe(_ => StorageUI()) .Subscribe(_ => StorageUI())
.DisposeWith(disposables); .DisposeWith(disposables);
}); });

View file

@ -128,25 +128,25 @@ public partial class MainWindow : WindowBase<MainWindowViewModel>
AppEvents.SendSnackMsgRequested AppEvents.SendSnackMsgRequested
.AsObservable() .AsObservable()
.ObserveOn(RxApp.MainThreadScheduler) .ObserveOn(RxSchedulers.MainThreadScheduler)
.Subscribe(async content => await DelegateSnackMsg(content)) .Subscribe(async content => await DelegateSnackMsg(content))
.DisposeWith(disposables); .DisposeWith(disposables);
AppEvents.AppExitRequested AppEvents.AppExitRequested
.AsObservable() .AsObservable()
.ObserveOn(RxApp.MainThreadScheduler) .ObserveOn(RxSchedulers.MainThreadScheduler)
.Subscribe(_ => StorageUI()) .Subscribe(_ => StorageUI())
.DisposeWith(disposables); .DisposeWith(disposables);
AppEvents.ShutdownRequested AppEvents.ShutdownRequested
.AsObservable() .AsObservable()
.ObserveOn(RxApp.MainThreadScheduler) .ObserveOn(RxSchedulers.MainThreadScheduler)
.Subscribe(content => Shutdown(content)) .Subscribe(content => Shutdown(content))
.DisposeWith(disposables); .DisposeWith(disposables);
AppEvents.ShowHideWindowRequested AppEvents.ShowHideWindowRequested
.AsObservable() .AsObservable()
.ObserveOn(RxApp.MainThreadScheduler) .ObserveOn(RxSchedulers.MainThreadScheduler)
.Subscribe(blShow => ShowHideWindow(blShow)) .Subscribe(blShow => ShowHideWindow(blShow))
.DisposeWith(disposables); .DisposeWith(disposables);
}); });

View file

@ -90,13 +90,13 @@ public partial class ProfilesView : ReactiveUserControl<ProfilesViewModel>
AppEvents.AppExitRequested AppEvents.AppExitRequested
.AsObservable() .AsObservable()
.ObserveOn(RxApp.MainThreadScheduler) .ObserveOn(RxSchedulers.MainThreadScheduler)
.Subscribe(_ => StorageUI()) .Subscribe(_ => StorageUI())
.DisposeWith(disposables); .DisposeWith(disposables);
AppEvents.AdjustMainLvColWidthRequested AppEvents.AdjustMainLvColWidthRequested
.AsObservable() .AsObservable()
.ObserveOn(RxApp.MainThreadScheduler) .ObserveOn(RxSchedulers.MainThreadScheduler)
.Subscribe(_ => AutofitColumnWidth()) .Subscribe(_ => AutofitColumnWidth())
.DisposeWith(disposables); .DisposeWith(disposables);
}); });

View file

@ -39,6 +39,11 @@ public partial class App : Application
} }
AppManager.Instance.InitComponents(); AppManager.Instance.InitComponents();
RxAppBuilder.CreateReactiveUIBuilder()
.WithWpf()
.BuildApp();
base.OnStartup(e); base.OnStartup(e);
} }

View file

@ -20,6 +20,7 @@ global using System.Windows.Threading;
global using DynamicData; global using DynamicData;
global using DynamicData.Binding; global using DynamicData.Binding;
global using ReactiveUI; global using ReactiveUI;
global using ReactiveUI.Builder;
global using ReactiveUI.Fody.Helpers; global using ReactiveUI.Fody.Helpers;
global using ServiceLib; global using ServiceLib;
global using ServiceLib.Base; global using ServiceLib.Base;

View file

@ -33,7 +33,7 @@ public partial class ClashConnectionsView
AppEvents.AppExitRequested AppEvents.AppExitRequested
.AsObservable() .AsObservable()
.ObserveOn(RxApp.MainThreadScheduler) .ObserveOn(RxSchedulers.MainThreadScheduler)
.Subscribe(_ => StorageUI()) .Subscribe(_ => StorageUI())
.DisposeWith(disposables); .DisposeWith(disposables);
}); });

View file

@ -127,25 +127,25 @@ public partial class MainWindow
AppEvents.SendSnackMsgRequested AppEvents.SendSnackMsgRequested
.AsObservable() .AsObservable()
.ObserveOn(RxApp.MainThreadScheduler) .ObserveOn(RxSchedulers.MainThreadScheduler)
.Subscribe(async content => await DelegateSnackMsg(content)) .Subscribe(async content => await DelegateSnackMsg(content))
.DisposeWith(disposables); .DisposeWith(disposables);
AppEvents.AppExitRequested AppEvents.AppExitRequested
.AsObservable() .AsObservable()
.ObserveOn(RxApp.MainThreadScheduler) .ObserveOn(RxSchedulers.MainThreadScheduler)
.Subscribe(_ => StorageUI()) .Subscribe(_ => StorageUI())
.DisposeWith(disposables); .DisposeWith(disposables);
AppEvents.ShutdownRequested AppEvents.ShutdownRequested
.AsObservable() .AsObservable()
.ObserveOn(RxApp.MainThreadScheduler) .ObserveOn(RxSchedulers.MainThreadScheduler)
.Subscribe(content => Shutdown(content)) .Subscribe(content => Shutdown(content))
.DisposeWith(disposables); .DisposeWith(disposables);
AppEvents.ShowHideWindowRequested AppEvents.ShowHideWindowRequested
.AsObservable() .AsObservable()
.ObserveOn(RxApp.MainThreadScheduler) .ObserveOn(RxSchedulers.MainThreadScheduler)
.Subscribe(blShow => ShowHideWindow(blShow)) .Subscribe(blShow => ShowHideWindow(blShow))
.DisposeWith(disposables); .DisposeWith(disposables);
}); });

View file

@ -84,13 +84,13 @@ public partial class ProfilesView
AppEvents.AppExitRequested AppEvents.AppExitRequested
.AsObservable() .AsObservable()
.ObserveOn(RxApp.MainThreadScheduler) .ObserveOn(RxSchedulers.MainThreadScheduler)
.Subscribe(_ => StorageUI()) .Subscribe(_ => StorageUI())
.DisposeWith(disposables); .DisposeWith(disposables);
AppEvents.AdjustMainLvColWidthRequested AppEvents.AdjustMainLvColWidthRequested
.AsObservable() .AsObservable()
.ObserveOn(RxApp.MainThreadScheduler) .ObserveOn(RxSchedulers.MainThreadScheduler)
.Subscribe(_ => AutofitColumnWidth()) .Subscribe(_ => AutofitColumnWidth())
.DisposeWith(disposables); .DisposeWith(disposables);
}); });

View file

@ -2,7 +2,7 @@
<PropertyGroup> <PropertyGroup>
<OutputType>WinExe</OutputType> <OutputType>WinExe</OutputType>
<TargetFramework>net8.0-windows10.0.17763</TargetFramework> <TargetFramework>net8.0-windows10.0.19041.0</TargetFramework>
<GenerateSatelliteAssembliesForCore>true</GenerateSatelliteAssembliesForCore> <GenerateSatelliteAssembliesForCore>true</GenerateSatelliteAssembliesForCore>
<UseWPF>true</UseWPF> <UseWPF>true</UseWPF>
<ApplicationIcon>Resources\v2rayN.ico</ApplicationIcon> <ApplicationIcon>Resources\v2rayN.ico</ApplicationIcon>