From bdb40aca6aaf420d951bd05291fb583f1df9c8b0 Mon Sep 17 00:00:00 2001 From: Lightczx <1686188646@qq.com> Date: Thu, 20 Apr 2023 15:54:57 +0800 Subject: [PATCH] daily note card --- .../UniversalAnalyzer.cs | 30 ++++ src/Snap.Hutao/Snap.Hutao/App.xaml | 4 +- .../Snap.Hutao/Control/Media/Bgra8.cs | 46 +---- .../Snap.Hutao/Control/Media/Rgba8.cs | 2 +- .../Core/Diagnostics/ValueStopwatch.cs | 2 +- .../Core/Windowing/WindowSubclass.cs | 2 +- .../GachaLog/Factory/HistoryWishBuilder.cs | 1 + .../Service/Game/Unlocker/GameFpsUnlocker.cs | 38 +--- src/Snap.Hutao/Snap.Hutao/Snap.Hutao.csproj | 7 + .../Snap.Hutao/View/Card/AchievementCard.xaml | 9 +- .../View/Card/AchievementCard.xaml.cs | 1 + .../Snap.Hutao/View/Card/DailyNoteCard.xaml | 164 ++++++++++++++++++ .../View/Card/DailyNoteCard.xaml.cs | 21 +++ .../View/Card/GachaStatisticsCard.xaml | 21 ++- .../View/Card/GachaStatisticsCard.xaml.cs | 1 + .../View/Card/LaunchGameCard.xaml.cs | 1 + .../Dialog/DailyNoteNotificationDialog.xaml | 17 +- .../View/Page/AnnouncementPage.xaml | 10 +- .../Snap.Hutao/View/Page/DailyNotePage.xaml | 4 +- .../View/Page/DailyNotePage.xaml.cs | 4 +- src/Snap.Hutao/Snap.Hutao/View/UserView.xaml | 13 +- .../Achievement/AchievementViewModelSlim.cs | 2 +- .../ViewModel/AnnouncementViewModel.cs | 19 -- .../{ => DailyNote}/DailyNoteViewModel.cs | 2 +- .../DailyNote/DailyNoteViewModelSlim.cs | 64 +++++++ .../GachaLog/GachaLogViewModelSlim.cs | 19 +- .../ViewModel/Game/LaunchGameViewModelSlim.cs | 2 +- .../ViewModel/SpiralAbyss/AvatarView.cs | 2 +- .../ViewModel/SpiralAbyss/RankAvatar.cs | 2 +- .../Snap.Hutao/ViewModel/User/User.cs | 5 + .../Snap.Hutao/ViewModel/User/UserAndUid.cs | 2 +- .../Web/Bridge/SignInJSInterfaceOversea.cs | 5 +- .../Event/GachaInfo/GachaLogQueryOptions.cs | 2 +- .../Hoyolab/Takumi/Binding/GenAuthKeyData.cs | 2 +- .../Takumi/GameRecord/Avatar/CharacterData.cs | 2 +- .../GameRecord/DailyNote/RecoveryTime.cs | 24 +++ .../Snap.Hutao/Win32/StructMarshal.cs | 22 +-- 37 files changed, 418 insertions(+), 156 deletions(-) create mode 100644 src/Snap.Hutao/Snap.Hutao/View/Card/DailyNoteCard.xaml create mode 100644 src/Snap.Hutao/Snap.Hutao/View/Card/DailyNoteCard.xaml.cs rename src/Snap.Hutao/Snap.Hutao/ViewModel/{ => DailyNote}/DailyNoteViewModel.cs (99%) create mode 100644 src/Snap.Hutao/Snap.Hutao/ViewModel/DailyNote/DailyNoteViewModelSlim.cs diff --git a/src/Snap.Hutao/Snap.Hutao.SourceGeneration/UniversalAnalyzer.cs b/src/Snap.Hutao/Snap.Hutao.SourceGeneration/UniversalAnalyzer.cs index 64516026..27507021 100644 --- a/src/Snap.Hutao/Snap.Hutao.SourceGeneration/UniversalAnalyzer.cs +++ b/src/Snap.Hutao/Snap.Hutao.SourceGeneration/UniversalAnalyzer.cs @@ -50,6 +50,7 @@ internal sealed class UniversalAnalyzer : DiagnosticAnalyzer context.RegisterSyntaxNodeAction(HandleTypeDeclaration, types); context.RegisterSyntaxNodeAction(HandleMethodDeclaration, SyntaxKind.MethodDeclaration); + context.RegisterSyntaxNodeAction(HandleConstructorDeclaration, SyntaxKind.ConstructorDeclaration); } private void HandleTypeDeclaration(SyntaxNodeAnalysisContext context) @@ -133,6 +134,35 @@ internal sealed class UniversalAnalyzer : DiagnosticAnalyzer } } + private void HandleConstructorDeclaration(SyntaxNodeAnalysisContext context) + { + ConstructorDeclarationSyntax constructorSyntax = (ConstructorDeclarationSyntax)context.Node; + + foreach (ParameterSyntax parameter in constructorSyntax.ParameterList.Parameters) + { + if (context.SemanticModel.GetDeclaredSymbol(parameter) is IParameterSymbol symbol) + { + if (IsBuiltInType(symbol.Type)) + { + continue; + } + + // 跳过 CancellationToken + if (symbol.Type.ToDisplayString() == "System.Threading.CancellationToken") + { + continue; + } + + if (symbol.Type.IsReadOnly && symbol.RefKind == RefKind.None) + { + Location location = parameter.GetLocation(); + Diagnostic diagnostic = Diagnostic.Create(readOnlyStructRefDescriptor, location, symbol.Type); + context.ReportDiagnostic(diagnostic); + } + } + } + } + private bool IsBuiltInType(ITypeSymbol symbol) { return symbol.SpecialType switch diff --git a/src/Snap.Hutao/Snap.Hutao/App.xaml b/src/Snap.Hutao/Snap.Hutao/App.xaml index 44b56ba5..5d2c689c 100644 --- a/src/Snap.Hutao/Snap.Hutao/App.xaml +++ b/src/Snap.Hutao/Snap.Hutao/App.xaml @@ -53,7 +53,9 @@ 3 - + 0 + 0 + 0