From 950522fda091749565e89880cec2fd26fc781daa Mon Sep 17 00:00:00 2001 From: uye <99072975+ABA2396@users.noreply.github.com> Date: Tue, 9 Sep 2025 17:53:42 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20CDK=20=E5=80=92=E8=AE=A1=E6=97=B6?= =?UTF-8?q?=E6=98=BE=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/MaaWpfGui/Models/ResourceUpdater.cs | 5 +---- .../ViewModels/UI/TaskQueueViewModel.cs | 5 ++++- .../ViewModels/UI/VersionUpdateViewModel.cs | 5 +---- .../VersionUpdateSettingsUserControlModel.cs | 21 ++++++++++++++++--- .../VersionUpdateSettingsUserControl.xaml | 3 ++- 5 files changed, 26 insertions(+), 13 deletions(-) diff --git a/src/MaaWpfGui/Models/ResourceUpdater.cs b/src/MaaWpfGui/Models/ResourceUpdater.cs index 4614e196cd..acc5456fb9 100644 --- a/src/MaaWpfGui/Models/ResourceUpdater.cs +++ b/src/MaaWpfGui/Models/ResourceUpdater.cs @@ -171,10 +171,7 @@ namespace MaaWpfGui.Models } var mirrorChyanCdkExpired = data["data"]?["cdk_expired_time"]?.ToObject() ?? null; - if (mirrorChyanCdkExpired.HasValue) - { - SettingsViewModel.VersionUpdateSettings.MirrorChyanCdkExpiredTime = mirrorChyanCdkExpired.Value; - } + SettingsViewModel.VersionUpdateSettings.MirrorChyanCdkExpiredTime = mirrorChyanCdkExpired ?? 0; var errorCode = data["code"]?.ToObject() ?? MirrorChyanErrorCode.Undivided; if (errorCode != MirrorChyanErrorCode.Success) diff --git a/src/MaaWpfGui/ViewModels/UI/TaskQueueViewModel.cs b/src/MaaWpfGui/ViewModels/UI/TaskQueueViewModel.cs index 3fb2a73b3e..ac63135f0a 100644 --- a/src/MaaWpfGui/ViewModels/UI/TaskQueueViewModel.cs +++ b/src/MaaWpfGui/ViewModels/UI/TaskQueueViewModel.cs @@ -425,7 +425,9 @@ namespace MaaWpfGui.ViewModels.UI { // 提前记录时间,避免等待超过定时时间 DateTime currentTime = DateTime.Now; - currentTime = new(currentTime.Year, currentTime.Month, currentTime.Day, currentTime.Hour, currentTime.Minute, 0); + currentTime = currentTime + .AddSeconds(-currentTime.Second) + .AddMilliseconds(-currentTime.Millisecond); if (currentTime == _lastTimerElapsed) { @@ -434,6 +436,7 @@ namespace MaaWpfGui.ViewModels.UI _lastTimerElapsed = currentTime; + VersionUpdateSettingsUserControlModel.Instance.RefreshMirrorChyanCdkRemaining(); HandleDatePromptUpdate(); HandleCheckForUpdates(); diff --git a/src/MaaWpfGui/ViewModels/UI/VersionUpdateViewModel.cs b/src/MaaWpfGui/ViewModels/UI/VersionUpdateViewModel.cs index 91b37f7348..77b98606f3 100644 --- a/src/MaaWpfGui/ViewModels/UI/VersionUpdateViewModel.cs +++ b/src/MaaWpfGui/ViewModels/UI/VersionUpdateViewModel.cs @@ -1020,10 +1020,7 @@ public class VersionUpdateViewModel : Screen } var mirrorChyanCdkExpired = data["data"]?["cdk_expired_time"]?.ToObject() ?? null; - if (mirrorChyanCdkExpired.HasValue) - { - SettingsViewModel.VersionUpdateSettings.MirrorChyanCdkExpiredTime = mirrorChyanCdkExpired.Value; - } + SettingsViewModel.VersionUpdateSettings.MirrorChyanCdkExpiredTime = mirrorChyanCdkExpired ?? 0; var errorCode = data["code"]?.ToObject() ?? MirrorChyanErrorCode.Undivided; if (errorCode != MirrorChyanErrorCode.Success) diff --git a/src/MaaWpfGui/ViewModels/UserControl/Settings/VersionUpdateSettingsUserControlModel.cs b/src/MaaWpfGui/ViewModels/UserControl/Settings/VersionUpdateSettingsUserControlModel.cs index de3132b1c9..30c844b9a5 100644 --- a/src/MaaWpfGui/ViewModels/UserControl/Settings/VersionUpdateSettingsUserControlModel.cs +++ b/src/MaaWpfGui/ViewModels/UserControl/Settings/VersionUpdateSettingsUserControlModel.cs @@ -298,6 +298,11 @@ public class VersionUpdateSettingsUserControlModel : PropertyChangedBase get => _mirrorChyanCdk; set { + if (string.IsNullOrEmpty(value)) + { + MirrorChyanCdkExpiredTime = 0; + } + if (!SetAndNotify(ref _mirrorChyanCdk, value)) { return; @@ -331,11 +336,13 @@ public class VersionUpdateSettingsUserControlModel : PropertyChangedBase } ConfigurationHelper.SetGlobalValue(ConfigurationKeys.MirrorChyanCdkExpiredTime, value.ToString()); + RefreshMirrorChyanCdkRemaining(); } } - [PropertyDependsOn(nameof(MirrorChyanCdkExpiredTime))] - public DateTime MirrorChyanCdkExpiredDateTime => DateTimeOffset.FromUnixTimeSeconds(MirrorChyanCdkExpiredTime).DateTime.ToLocalTime(); + public DateTime MirrorChyanCdkExpiredDateTime => DateTimeOffset.FromUnixTimeSeconds(MirrorChyanCdkExpiredTime).DateTime; + + public DateTime MirrorChyanCdkExpiredLocalTime => MirrorChyanCdkExpiredDateTime.ToLocalTime(); /// /// Gets 剩余时间 @@ -359,7 +366,6 @@ public class VersionUpdateSettingsUserControlModel : PropertyChangedBase /// /// Gets uI 显示用颜色 /// - [PropertyDependsOn(nameof(MirrorChyanCdkExpiredTime))] public string MirrorChyanCdkRemainingBrush { get @@ -378,6 +384,15 @@ public class VersionUpdateSettingsUserControlModel : PropertyChangedBase } } + public void RefreshMirrorChyanCdkRemaining() + { + OnPropertyChanged(nameof(MirrorChyanCdkExpiredDateTime)); + OnPropertyChanged(nameof(MirrorChyanCdkRemaining)); + OnPropertyChanged(nameof(IsMirrorChyanCdkExpired)); + OnPropertyChanged(nameof(MirrorChyanCdkRemainingText)); + OnPropertyChanged(nameof(MirrorChyanCdkRemainingBrush)); + } + private bool _startupUpdateCheck = Convert.ToBoolean(ConfigurationHelper.GetGlobalValue(ConfigurationKeys.StartupUpdateCheck, bool.TrueString)); // UI 绑定的方法 diff --git a/src/MaaWpfGui/Views/UserControl/Settings/VersionUpdateSettingsUserControl.xaml b/src/MaaWpfGui/Views/UserControl/Settings/VersionUpdateSettingsUserControl.xaml index 87912bf092..5fee5f5857 100644 --- a/src/MaaWpfGui/Views/UserControl/Settings/VersionUpdateSettingsUserControl.xaml +++ b/src/MaaWpfGui/Views/UserControl/Settings/VersionUpdateSettingsUserControl.xaml @@ -144,7 +144,8 @@ Margin="0,5,0,0" uiBehaviors:ResourceReferenceHelper.ForegroundResourceKey="{Binding MirrorChyanCdkRemainingBrush}" Text="{Binding MirrorChyanCdkRemainingText}" - TextWrapping="Wrap" /> + TextWrapping="Wrap" + ToolTip="{Binding MirrorChyanCdkExpiredLocalTime}" />