refactor(launcher): replace LauncherFlowCoordinator with LaunchPipeline and slim App shell

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
lincube
2026-05-28 11:03:49 +08:00
parent b219f109ec
commit a26b6faace
19 changed files with 2530 additions and 801 deletions

View File

@@ -0,0 +1,24 @@
using Avalonia.Threading;
namespace LanMountainDesktop.Launcher.Startup;
internal sealed class OobeGatePhase : ILaunchPhase
{
public string Name => nameof(OobeGatePhase);
public async Task<LaunchPhaseResult> ExecuteAsync(LaunchContext context, CancellationToken cancellationToken = default)
{
if (context.OobeDecision.ShouldShowOobe)
{
await Dispatcher.UIThread.InvokeAsync(() => context.SplashWindow.Hide());
foreach (var step in context.OobeSteps)
{
await step.RunAsync(cancellationToken).ConfigureAwait(false);
}
await Dispatcher.UIThread.InvokeAsync(() => context.SplashWindow.Show());
}
return new LaunchPhaseResult(LaunchPhaseStatus.Continue);
}
}