Fixes every finding the new quality gate reports, without changing behavior: - One type per file (MA0048): AppBrand, Attribution, NullActivityLog, LogSnapshot, ISanitizable, AppTheme, UpdateCheckResult, UpdateText, IUpdateBackend, ContentDialogPrompter, WindowExtensions, MessageBoxPrompter, and the samples' SampleSettings/SampleSettingsContext get their own files (the samples now link samples/Shared/*.cs). - Regex match timeouts on the two generated regexes (MA0009). - AppInfo.Id reports nameof(value) as the parameter (MA0015); test updated. - Splash dismissal is a named DismissAfterAsync started through the dispatcher (MA0147, MA0134), and the WinUI splash constructor is split into builders (MA0051). The WPF countdown must go through the dispatcher: the sample builds its window before Application.Run, when no synchronization context exists. - The WinUI sample's startup update check is a named method (MA0147). - CA1859 in BrandTool and the version tests; private static readonly fields renamed to s_camelCase (IDE1006). - A header comment on every type and method (K22-CODE-09/CS-04): hand-written for library, sample, and tool code; test methods summarize their Subject_Behavior names. Verified: zero-warning x64 build, 115 unit tests with 100% line coverage of KofTwentyTwo.AppKit and KofTwentyTwo.AppKit.Updates, 12 UI tests, and dotnet format --verify-no-changes --severity warn. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: James Maes <james@kof22.com>
42 lines
1.2 KiB
C#
42 lines
1.2 KiB
C#
/*
|
|
* Copyright (c) 2026 James Maes (KofTwentyTwo)
|
|
* SPDX-License-Identifier: MIT
|
|
*/
|
|
|
|
using KofTwentyTwo.AppKit.Logging;
|
|
using KofTwentyTwo.AppKit.WinUI;
|
|
using Microsoft.UI.Xaml;
|
|
|
|
|
|
namespace AppKit.Sample.WinUI;
|
|
|
|
/// <summary>The WinUI sample application: installs AppKit's crash net and the saved theme, then opens the main window.</summary>
|
|
public partial class App : Application
|
|
{
|
|
private Window? _window;
|
|
|
|
/// <summary>The app-wide activity log.</summary>
|
|
internal static IActivityLog Log { get; } = FileActivityLog.ForApp(SampleApp.Info, SampleApp.Paths);
|
|
|
|
|
|
|
|
/// <summary>Installs the crash net and applies the saved theme; WinUI allows setting the application theme only here, before any window exists.</summary>
|
|
public App()
|
|
{
|
|
InitializeComponent();
|
|
WinUIShell.InstallCrashNet(this, () => Log);
|
|
// Only settable here, before any window exists.
|
|
WinUIShell.ApplyTheme(this, SampleApp.SettingsStore.Load().ThemeKind);
|
|
}
|
|
|
|
|
|
|
|
/// <summary>Logs the start and opens the main window.</summary>
|
|
protected override void OnLaunched(LaunchActivatedEventArgs args)
|
|
{
|
|
Log.Info($"{SampleApp.Info.DisplayName} started.");
|
|
_window = new MainWindow();
|
|
_window.Activate();
|
|
}
|
|
}
|