feat: CDK 倒计时显示

This commit is contained in:
uye
2025-09-09 17:53:42 +08:00
parent 5a7030ad50
commit 950522fda0
5 changed files with 26 additions and 13 deletions

View File

@@ -171,10 +171,7 @@ namespace MaaWpfGui.Models
}
var mirrorChyanCdkExpired = data["data"]?["cdk_expired_time"]?.ToObject<int?>() ?? null;
if (mirrorChyanCdkExpired.HasValue)
{
SettingsViewModel.VersionUpdateSettings.MirrorChyanCdkExpiredTime = mirrorChyanCdkExpired.Value;
}
SettingsViewModel.VersionUpdateSettings.MirrorChyanCdkExpiredTime = mirrorChyanCdkExpired ?? 0;
var errorCode = data["code"]?.ToObject<MirrorChyanErrorCode>() ?? MirrorChyanErrorCode.Undivided;
if (errorCode != MirrorChyanErrorCode.Success)

View File

@@ -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();

View File

@@ -1020,10 +1020,7 @@ public class VersionUpdateViewModel : Screen
}
var mirrorChyanCdkExpired = data["data"]?["cdk_expired_time"]?.ToObject<int?>() ?? null;
if (mirrorChyanCdkExpired.HasValue)
{
SettingsViewModel.VersionUpdateSettings.MirrorChyanCdkExpiredTime = mirrorChyanCdkExpired.Value;
}
SettingsViewModel.VersionUpdateSettings.MirrorChyanCdkExpiredTime = mirrorChyanCdkExpired ?? 0;
var errorCode = data["code"]?.ToObject<MirrorChyanErrorCode>() ?? MirrorChyanErrorCode.Undivided;
if (errorCode != MirrorChyanErrorCode.Success)

View File

@@ -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();
/// <summary>
/// Gets 剩余时间
@@ -359,7 +366,6 @@ public class VersionUpdateSettingsUserControlModel : PropertyChangedBase
/// <summary>
/// Gets uI 显示用颜色
/// </summary>
[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 绑定的方法

View File

@@ -144,7 +144,8 @@
Margin="0,5,0,0"
uiBehaviors:ResourceReferenceHelper.ForegroundResourceKey="{Binding MirrorChyanCdkRemainingBrush}"
Text="{Binding MirrorChyanCdkRemainingText}"
TextWrapping="Wrap" />
TextWrapping="Wrap"
ToolTip="{Binding MirrorChyanCdkExpiredLocalTime}" />
</StackPanel>
<controls:TextBlock HorizontalAlignment="Center" VerticalAlignment="Center">
<Hyperlink