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