From 110af483852335e18d9012eddde4cc161da9bd34 Mon Sep 17 00:00:00 2001 From: DismissedLight <1686188646@qq.com> Date: Sun, 14 Jul 2024 23:51:09 +0800 Subject: [PATCH] uigf 4 support --- .../Core/Database/SelectableExtension.cs | 7 ++++ .../Snap.Hutao/Model/Entity/Achievement.cs | 1 - .../Snap.Hutao/Model/Entity/GachaItem.cs | 1 - .../Model/InterChange/GachaLog/UIGF.cs | 3 +- .../Model/InterChange/GachaLog/UIGFEntry.cs | 3 +- .../Snap.Hutao/Resource/Localization/SH.resx | 21 ++++++++++++ .../Service/GachaLog/GachaLogDbService.cs | 5 ++- .../Service/GachaLog/IGachaLogDbService.cs | 2 +- .../Service/GachaLog/IGachaLogService.cs | 5 --- .../Service/UIGF/UIGF40ExportService.cs | 14 ++++---- .../Service/UIGF/UIGF40ImportService.cs | 8 ++--- .../Service/UIGF/UIGFExportOptions.cs | 2 +- .../Service/UIGF/UIGFImportOptions.cs | 2 +- src/Snap.Hutao/Snap.Hutao/Snap.Hutao.csproj | 6 ++++ .../TimestampToLocalTimeStringConverter.cs | 13 ++++++++ .../UInt32ToGradientColorConverter.cs | 9 ----- .../Dialog/CultivateProjectDialog.xaml.cs | 1 - .../UI/Xaml/View/Dialog/UIGFExportDialog.xaml | 28 ++++++++++++++++ .../Xaml/View/Dialog/UIGFExportDialog.xaml.cs | 33 +++++++++++++++++++ .../UI/Xaml/View/Dialog/UIGFImportDialog.xaml | 17 ++++++++-- .../Xaml/View/Dialog/UIGFImportDialog.xaml.cs | 4 +-- .../Xaml/View/Dialog/UIGFUidSelection.xaml.cs | 6 ++-- .../UI/Xaml/View/Page/GachaLogPage.xaml | 15 --------- .../UI/Xaml/View/Page/SettingPage.xaml | 15 +++++++++ .../AvatarProperty/ReliquarySubProperty.cs | 17 ---------- .../ViewModel/AvatarProperty/ReliquaryView.cs | 21 ------------ .../ViewModel/GachaLog/GachaLogViewModel.cs | 5 +-- .../Setting/SettingGachaLogViewModel.cs | 30 ++++++++++++----- 28 files changed, 184 insertions(+), 110 deletions(-) create mode 100644 src/Snap.Hutao/Snap.Hutao/UI/Xaml/Data/Converter/Specialized/TimestampToLocalTimeStringConverter.cs create mode 100644 src/Snap.Hutao/Snap.Hutao/UI/Xaml/View/Dialog/UIGFExportDialog.xaml create mode 100644 src/Snap.Hutao/Snap.Hutao/UI/Xaml/View/Dialog/UIGFExportDialog.xaml.cs diff --git a/src/Snap.Hutao/Snap.Hutao/Core/Database/SelectableExtension.cs b/src/Snap.Hutao/Snap.Hutao/Core/Database/SelectableExtension.cs index 66d757df..4642f2b6 100644 --- a/src/Snap.Hutao/Snap.Hutao/Core/Database/SelectableExtension.cs +++ b/src/Snap.Hutao/Snap.Hutao/Core/Database/SelectableExtension.cs @@ -18,4 +18,11 @@ internal static class SelectableExtension { return source.SingleOrDefault(i => i.IsSelected); } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static TSource? SelectedOrFirstOrDefault(this IEnumerable source) + where TSource : ISelectable + { + return source.SingleOrDefault(i => i.IsSelected) ?? source.FirstOrDefault(); + } } \ No newline at end of file diff --git a/src/Snap.Hutao/Snap.Hutao/Model/Entity/Achievement.cs b/src/Snap.Hutao/Snap.Hutao/Model/Entity/Achievement.cs index 542ac726..ac3bb625 100644 --- a/src/Snap.Hutao/Snap.Hutao/Model/Entity/Achievement.cs +++ b/src/Snap.Hutao/Snap.Hutao/Model/Entity/Achievement.cs @@ -2,7 +2,6 @@ // Licensed under the MIT license. using Snap.Hutao.Model.Entity.Abstraction; -using Snap.Hutao.Model.InterChange; using Snap.Hutao.Model.InterChange.Achievement; using Snap.Hutao.Model.Intrinsic; using Snap.Hutao.Model.Primitive; diff --git a/src/Snap.Hutao/Snap.Hutao/Model/Entity/GachaItem.cs b/src/Snap.Hutao/Snap.Hutao/Model/Entity/GachaItem.cs index 8cf175c0..80cca4ed 100644 --- a/src/Snap.Hutao/Snap.Hutao/Model/Entity/GachaItem.cs +++ b/src/Snap.Hutao/Snap.Hutao/Model/Entity/GachaItem.cs @@ -6,7 +6,6 @@ using Snap.Hutao.Model.InterChange.GachaLog; using Snap.Hutao.Web.Hoyolab.Hk4e.Event.GachaInfo; using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; -using System.Globalization; namespace Snap.Hutao.Model.Entity; diff --git a/src/Snap.Hutao/Snap.Hutao/Model/InterChange/GachaLog/UIGF.cs b/src/Snap.Hutao/Snap.Hutao/Model/InterChange/GachaLog/UIGF.cs index a4b0ad2c..872e47ce 100644 --- a/src/Snap.Hutao/Snap.Hutao/Model/InterChange/GachaLog/UIGF.cs +++ b/src/Snap.Hutao/Snap.Hutao/Model/InterChange/GachaLog/UIGF.cs @@ -6,7 +6,8 @@ namespace Snap.Hutao.Model.InterChange.GachaLog; internal sealed class UIGF { [JsonPropertyName("info")] - public required UIGFInfo Info { get; set; } + [JsonRequired] + public UIGFInfo Info { get; set; } = default!; [JsonPropertyName("hk4e")] public List>? Hk4e { get; set; } diff --git a/src/Snap.Hutao/Snap.Hutao/Model/InterChange/GachaLog/UIGFEntry.cs b/src/Snap.Hutao/Snap.Hutao/Model/InterChange/GachaLog/UIGFEntry.cs index e38326d3..61dbefeb 100644 --- a/src/Snap.Hutao/Snap.Hutao/Model/InterChange/GachaLog/UIGFEntry.cs +++ b/src/Snap.Hutao/Snap.Hutao/Model/InterChange/GachaLog/UIGFEntry.cs @@ -6,7 +6,8 @@ namespace Snap.Hutao.Model.InterChange.GachaLog; internal sealed class UIGFEntry { [JsonPropertyName("uid")] - public required string Uid { get; set; } + [JsonNumberHandling(JsonNumberHandling.AllowReadingFromString | JsonNumberHandling.WriteAsString)] + public required uint Uid { get; set; } [JsonPropertyName("timezone")] public required int TimeZone { get; set; } diff --git a/src/Snap.Hutao/Snap.Hutao/Resource/Localization/SH.resx b/src/Snap.Hutao/Snap.Hutao/Resource/Localization/SH.resx index 682a9c87..06277d37 100644 --- a/src/Snap.Hutao/Snap.Hutao/Resource/Localization/SH.resx +++ b/src/Snap.Hutao/Snap.Hutao/Resource/Localization/SH.resx @@ -1274,6 +1274,12 @@ 实时便笺 Webhook Url + + 选择要导出记录的 UID + + + 导出 UIGF 文件 + 解除限制后需要使用其他工具恢复限制 @@ -1361,6 +1367,12 @@ UIGF 版本 + + 选择要导入记录的 UID + + + 导入 UIGF 文件 + 在此处输入名称 @@ -1802,9 +1814,18 @@ 保存游戏路径失败 + + 导出失败 + + + 导出成功 + 导入的 UIGF 文件中包含 UID 重复的祈愿记录项 + + 导入失败 + 导入的 UIGF 文件中不包含祈愿数据 diff --git a/src/Snap.Hutao/Snap.Hutao/Service/GachaLog/GachaLogDbService.cs b/src/Snap.Hutao/Snap.Hutao/Service/GachaLog/GachaLogDbService.cs index 4b8c0836..fc9508c9 100644 --- a/src/Snap.Hutao/Snap.Hutao/Service/GachaLog/GachaLogDbService.cs +++ b/src/Snap.Hutao/Snap.Hutao/Service/GachaLog/GachaLogDbService.cs @@ -4,7 +4,6 @@ using Snap.Hutao.Core.Database; using Snap.Hutao.Model.Entity; using Snap.Hutao.Model.Entity.Database; -using Snap.Hutao.Model.InterChange; using Snap.Hutao.Service.Abstraction; using Snap.Hutao.Web.Hoyolab.Hk4e.Event.GachaInfo; using System.Collections.ObjectModel; @@ -111,8 +110,8 @@ internal sealed partial class GachaLogDbService : IGachaLogDbService this.Delete(i => i.ArchiveId == archiveId && i.QueryType == queryType && i.Id >= endId); } - public List GetGachaArchiveList() + public List GetGachaArchiveUidList() { - return this.List(); + return this.List(query => query.Select(archive => archive.Uid)); } } \ No newline at end of file diff --git a/src/Snap.Hutao/Snap.Hutao/Service/GachaLog/IGachaLogDbService.cs b/src/Snap.Hutao/Snap.Hutao/Service/GachaLog/IGachaLogDbService.cs index 68e4be57..4e5f44ee 100644 --- a/src/Snap.Hutao/Snap.Hutao/Service/GachaLog/IGachaLogDbService.cs +++ b/src/Snap.Hutao/Snap.Hutao/Service/GachaLog/IGachaLogDbService.cs @@ -22,7 +22,7 @@ internal interface IGachaLogDbService : IAppDbService, IAppDbServi GachaArchive? GetGachaArchiveByUid(string uid); - List GetGachaArchiveList(); + List GetGachaArchiveUidList(); ObservableCollection GetGachaArchiveCollection(); diff --git a/src/Snap.Hutao/Snap.Hutao/Service/GachaLog/IGachaLogService.cs b/src/Snap.Hutao/Snap.Hutao/Service/GachaLog/IGachaLogService.cs index b01e7d27..2bfe4860 100644 --- a/src/Snap.Hutao/Snap.Hutao/Service/GachaLog/IGachaLogService.cs +++ b/src/Snap.Hutao/Snap.Hutao/Service/GachaLog/IGachaLogService.cs @@ -3,16 +3,11 @@ using Snap.Hutao.Core.Database; using Snap.Hutao.Model.Entity; -using Snap.Hutao.Model.InterChange.GachaLog; using Snap.Hutao.Service.GachaLog.QueryProvider; using Snap.Hutao.ViewModel.GachaLog; namespace Snap.Hutao.Service.GachaLog; -/// -/// 祈愿记录服务 -/// -[HighQuality] internal interface IGachaLogService { AdvancedDbCollectionView? Archives { get; } diff --git a/src/Snap.Hutao/Snap.Hutao/Service/UIGF/UIGF40ExportService.cs b/src/Snap.Hutao/Snap.Hutao/Service/UIGF/UIGF40ExportService.cs index 2bd3c870..07e5e359 100644 --- a/src/Snap.Hutao/Snap.Hutao/Service/UIGF/UIGF40ExportService.cs +++ b/src/Snap.Hutao/Snap.Hutao/Service/UIGF/UIGF40ExportService.cs @@ -33,7 +33,7 @@ internal sealed partial class UIGF40ExportService : IUIGFExportService }, }; - ExportGachaArchives(uigf, exportOptions.GachaArchiveIds); + ExportGachaArchives(uigf, exportOptions.GachaArchiveUids); using (FileStream stream = File.Create(exportOptions.FilePath)) { @@ -41,9 +41,9 @@ internal sealed partial class UIGF40ExportService : IUIGFExportService } } - private void ExportGachaArchives(Model.InterChange.GachaLog.UIGF uigf, List archiveIds) + private void ExportGachaArchives(Model.InterChange.GachaLog.UIGF uigf, List uids) { - if (archiveIds.Count <= 0) + if (uids.Count <= 0) { return; } @@ -51,14 +51,14 @@ internal sealed partial class UIGF40ExportService : IUIGFExportService IGachaLogDbService gachaLogDbService = serviceProvider.GetRequiredService(); List> results = []; - foreach (Guid archiveId in archiveIds) + foreach (uint uid in uids) { - GachaArchive? archive = gachaLogDbService.GetGachaArchiveById(archiveId); + GachaArchive? archive = gachaLogDbService.GetGachaArchiveByUid($"{uid}"); ArgumentNullException.ThrowIfNull(archive); - List dbItems = gachaLogDbService.GetGachaItemListByArchiveId(archiveId); + List dbItems = gachaLogDbService.GetGachaItemListByArchiveId(archive.InnerId); UIGFEntry entry = new() { - Uid = archive.Uid, + Uid = uid, TimeZone = 0, List = dbItems.SelectList(Hk4eItem.From), }; diff --git a/src/Snap.Hutao/Snap.Hutao/Service/UIGF/UIGF40ImportService.cs b/src/Snap.Hutao/Snap.Hutao/Service/UIGF/UIGF40ImportService.cs index 91a1ab6a..2cc4dbbc 100644 --- a/src/Snap.Hutao/Snap.Hutao/Service/UIGF/UIGF40ImportService.cs +++ b/src/Snap.Hutao/Snap.Hutao/Service/UIGF/UIGF40ImportService.cs @@ -21,7 +21,7 @@ internal sealed partial class UIGF40ImportService : IUIGFImportService ImportGachaArchives(importOptions.UIGF.Hk4e, importOptions.GachaArchiveUids); } - private void ImportGachaArchives(List>? entries, HashSet uids) + private void ImportGachaArchives(List>? entries, HashSet uids) { if (entries.IsNullOrEmpty() || uids.IsNullOrEmpty()) { @@ -37,11 +37,11 @@ internal sealed partial class UIGF40ImportService : IUIGFImportService continue; } - GachaArchive? archive = gachaLogDbService.GetGachaArchiveByUid(entry.Uid); + GachaArchive? archive = gachaLogDbService.GetGachaArchiveByUid($"{entry.Uid}"); if (archive is null) { - archive = GachaArchive.From(entry.Uid); + archive = GachaArchive.From($"{entry.Uid}"); gachaLogDbService.AddGachaArchive(archive); } @@ -50,7 +50,7 @@ internal sealed partial class UIGF40ImportService : IUIGFImportService List fullItems = []; foreach (GachaType queryType in GachaLog.GachaLog.QueryTypes) { - long trimId = gachaLogDbService.GetOldestGachaItemIdByArchiveIdAndQueryType(archiveId, queryType); + long trimId = gachaLogDbService.GetNewestGachaItemIdByArchiveIdAndQueryType(archiveId, queryType); List currentTypedList = entry.List .Where(item => item.UIGFGachaType == queryType && item.Id > trimId) .OrderByDescending(item => item.Id) diff --git a/src/Snap.Hutao/Snap.Hutao/Service/UIGF/UIGFExportOptions.cs b/src/Snap.Hutao/Snap.Hutao/Service/UIGF/UIGFExportOptions.cs index 62c8ab58..93b043e0 100644 --- a/src/Snap.Hutao/Snap.Hutao/Service/UIGF/UIGFExportOptions.cs +++ b/src/Snap.Hutao/Snap.Hutao/Service/UIGF/UIGFExportOptions.cs @@ -7,5 +7,5 @@ internal sealed class UIGFExportOptions { public required string FilePath { get; set; } - public required List GachaArchiveIds { get; set; } + public required List GachaArchiveUids { get; set; } } \ No newline at end of file diff --git a/src/Snap.Hutao/Snap.Hutao/Service/UIGF/UIGFImportOptions.cs b/src/Snap.Hutao/Snap.Hutao/Service/UIGF/UIGFImportOptions.cs index 9ebfb237..496f58d4 100644 --- a/src/Snap.Hutao/Snap.Hutao/Service/UIGF/UIGFImportOptions.cs +++ b/src/Snap.Hutao/Snap.Hutao/Service/UIGF/UIGFImportOptions.cs @@ -7,5 +7,5 @@ internal sealed class UIGFImportOptions { public required Model.InterChange.GachaLog.UIGF UIGF { get; set; } - public required HashSet GachaArchiveUids { get; set; } + public required HashSet GachaArchiveUids { get; set; } } \ No newline at end of file diff --git a/src/Snap.Hutao/Snap.Hutao/Snap.Hutao.csproj b/src/Snap.Hutao/Snap.Hutao/Snap.Hutao.csproj index 98b85142..47a36cab 100644 --- a/src/Snap.Hutao/Snap.Hutao/Snap.Hutao.csproj +++ b/src/Snap.Hutao/Snap.Hutao/Snap.Hutao.csproj @@ -150,6 +150,7 @@ + @@ -340,6 +341,11 @@ + + + MSBuild:Compile + + MSBuild:Compile diff --git a/src/Snap.Hutao/Snap.Hutao/UI/Xaml/Data/Converter/Specialized/TimestampToLocalTimeStringConverter.cs b/src/Snap.Hutao/Snap.Hutao/UI/Xaml/Data/Converter/Specialized/TimestampToLocalTimeStringConverter.cs new file mode 100644 index 00000000..7fd39b1c --- /dev/null +++ b/src/Snap.Hutao/Snap.Hutao/UI/Xaml/Data/Converter/Specialized/TimestampToLocalTimeStringConverter.cs @@ -0,0 +1,13 @@ +// Copyright (c) DGP Studio. All rights reserved. +// Licensed under the MIT license. + +namespace Snap.Hutao.UI.Xaml.Data.Converter.Specialized; + +internal sealed class TimestampToLocalTimeStringConverter : ValueConverter +{ + public override string Convert(long from) + { + DateTimeOffset dto = DateTimeOffset.FromUnixTimeSeconds(from).ToLocalTime(); + return $"{dto:yyyy-MM-dd HH:mm:ss}"; + } +} \ No newline at end of file diff --git a/src/Snap.Hutao/Snap.Hutao/UI/Xaml/Data/Converter/Specialized/UInt32ToGradientColorConverter.cs b/src/Snap.Hutao/Snap.Hutao/UI/Xaml/Data/Converter/Specialized/UInt32ToGradientColorConverter.cs index ba5b18d4..c75cbf12 100644 --- a/src/Snap.Hutao/Snap.Hutao/UI/Xaml/Data/Converter/Specialized/UInt32ToGradientColorConverter.cs +++ b/src/Snap.Hutao/Snap.Hutao/UI/Xaml/Data/Converter/Specialized/UInt32ToGradientColorConverter.cs @@ -38,13 +38,4 @@ internal sealed partial class UInt32ToGradientColorConverter : DependencyValueCo color.B = (byte)b; return color; } -} - -internal sealed class TimestampToLocalTimeStringConverter : ValueConverter -{ - public override string Convert(long from) - { - DateTimeOffset dto = DateTimeOffset.FromUnixTimeSeconds(from).ToLocalTime(); - return $"{dto:yyyy-MM-dd HH:mm:ss}"; - } } \ No newline at end of file diff --git a/src/Snap.Hutao/Snap.Hutao/UI/Xaml/View/Dialog/CultivateProjectDialog.xaml.cs b/src/Snap.Hutao/Snap.Hutao/UI/Xaml/View/Dialog/CultivateProjectDialog.xaml.cs index ada860cb..09602820 100644 --- a/src/Snap.Hutao/Snap.Hutao/UI/Xaml/View/Dialog/CultivateProjectDialog.xaml.cs +++ b/src/Snap.Hutao/Snap.Hutao/UI/Xaml/View/Dialog/CultivateProjectDialog.xaml.cs @@ -3,7 +3,6 @@ using Microsoft.UI.Xaml.Controls; using Snap.Hutao.Model.Entity; -using Snap.Hutao.Service.User; namespace Snap.Hutao.UI.Xaml.View.Dialog; diff --git a/src/Snap.Hutao/Snap.Hutao/UI/Xaml/View/Dialog/UIGFExportDialog.xaml b/src/Snap.Hutao/Snap.Hutao/UI/Xaml/View/Dialog/UIGFExportDialog.xaml new file mode 100644 index 00000000..67eb1f94 --- /dev/null +++ b/src/Snap.Hutao/Snap.Hutao/UI/Xaml/View/Dialog/UIGFExportDialog.xaml @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + diff --git a/src/Snap.Hutao/Snap.Hutao/UI/Xaml/View/Dialog/UIGFExportDialog.xaml.cs b/src/Snap.Hutao/Snap.Hutao/UI/Xaml/View/Dialog/UIGFExportDialog.xaml.cs new file mode 100644 index 00000000..eb06085b --- /dev/null +++ b/src/Snap.Hutao/Snap.Hutao/UI/Xaml/View/Dialog/UIGFExportDialog.xaml.cs @@ -0,0 +1,33 @@ +// Copyright (c) DGP Studio. All rights reserved. +// Licensed under the MIT license. + +using Microsoft.UI.Xaml; +using Microsoft.UI.Xaml.Controls; + +namespace Snap.Hutao.UI.Xaml.View.Dialog; + +[DependencyProperty("Selections", typeof(List))] +internal sealed partial class UIGFExportDialog : ContentDialog +{ + private readonly ITaskContext taskContext; + + public UIGFExportDialog(IServiceProvider serviceProvider, List uids) + { + InitializeComponent(); + taskContext = serviceProvider.GetRequiredService(); + + Selections = uids.SelectList(item => new UIGFUidSelection(item)); + } + + public async ValueTask>> GetSelectedUidsAsync() + { + await taskContext.SwitchToMainThreadAsync(); + if (await ShowAsync() is ContentDialogResult.Primary) + { + List uids = Selections.Where(item => item.IsSelected).Select(item => item.Uid).ToList(); + return new(true, uids); + } + + return new(false, default!); + } +} diff --git a/src/Snap.Hutao/Snap.Hutao/UI/Xaml/View/Dialog/UIGFImportDialog.xaml b/src/Snap.Hutao/Snap.Hutao/UI/Xaml/View/Dialog/UIGFImportDialog.xaml index 2d54ebe2..8097f4f7 100644 --- a/src/Snap.Hutao/Snap.Hutao/UI/Xaml/View/Dialog/UIGFImportDialog.xaml +++ b/src/Snap.Hutao/Snap.Hutao/UI/Xaml/View/Dialog/UIGFImportDialog.xaml @@ -9,17 +9,23 @@ xmlns:shmig="using:Snap.Hutao.Model.InterChange.GachaLog" xmlns:shuxdcs="using:Snap.Hutao.UI.Xaml.Data.Converter.Specialized" xmlns:shuxm="using:Snap.Hutao.UI.Xaml.Markup" + Title="{shuxm:ResourceString Name=ViewDialogImportUIGFTitle}" + CloseButtonText="{shuxm:ResourceString Name=ContentDialogCancelCloseButtonText}" + DefaultButton="Primary" + PrimaryButtonText="{shuxm:ResourceString Name=ContentDialogConfirmPrimaryButtonText}" + Style="{StaticResource DefaultContentDialogStyle}" mc:Ignorable="d"> - + + - + + + + + - + diff --git a/src/Snap.Hutao/Snap.Hutao/UI/Xaml/View/Dialog/UIGFImportDialog.xaml.cs b/src/Snap.Hutao/Snap.Hutao/UI/Xaml/View/Dialog/UIGFImportDialog.xaml.cs index 778ea833..1c99096b 100644 --- a/src/Snap.Hutao/Snap.Hutao/UI/Xaml/View/Dialog/UIGFImportDialog.xaml.cs +++ b/src/Snap.Hutao/Snap.Hutao/UI/Xaml/View/Dialog/UIGFImportDialog.xaml.cs @@ -21,12 +21,12 @@ internal sealed partial class UIGFImportDialog : ContentDialog Selections = uigf.Hk4e?.SelectList(item => new UIGFUidSelection(item.Uid)); } - public async ValueTask>> GetSelectedUidsAsync() + public async ValueTask>> GetSelectedUidsAsync() { await taskContext.SwitchToMainThreadAsync(); if (await ShowAsync() is ContentDialogResult.Primary) { - HashSet uids = Selections.Where(item => item.IsSelected).Select(item => item.Uid).ToHashSet(); + HashSet uids = Selections.Where(item => item.IsSelected).Select(item => item.Uid).ToHashSet(); return new(true, uids); } diff --git a/src/Snap.Hutao/Snap.Hutao/UI/Xaml/View/Dialog/UIGFUidSelection.xaml.cs b/src/Snap.Hutao/Snap.Hutao/UI/Xaml/View/Dialog/UIGFUidSelection.xaml.cs index 430713a0..965a156a 100644 --- a/src/Snap.Hutao/Snap.Hutao/UI/Xaml/View/Dialog/UIGFUidSelection.xaml.cs +++ b/src/Snap.Hutao/Snap.Hutao/UI/Xaml/View/Dialog/UIGFUidSelection.xaml.cs @@ -2,8 +2,6 @@ // Licensed under the MIT license. using CommunityToolkit.Mvvm.ComponentModel; -using Microsoft.UI.Xaml.Controls; -using Snap.Hutao.Model.InterChange.GachaLog; namespace Snap.Hutao.UI.Xaml.View.Dialog; @@ -11,12 +9,12 @@ internal sealed class UIGFUidSelection : ObservableObject { private bool isSelected = true; - public UIGFUidSelection(string uid) + public UIGFUidSelection(uint uid) { Uid = uid; } public bool IsSelected { get => isSelected; set => SetProperty(ref isSelected, value); } - public string Uid { get; set; } + public uint Uid { get; set; } } \ No newline at end of file diff --git a/src/Snap.Hutao/Snap.Hutao/UI/Xaml/View/Page/GachaLogPage.xaml b/src/Snap.Hutao/Snap.Hutao/UI/Xaml/View/Page/GachaLogPage.xaml index adcbfe4b..ca45886d 100644 --- a/src/Snap.Hutao/Snap.Hutao/UI/Xaml/View/Page/GachaLogPage.xaml +++ b/src/Snap.Hutao/Snap.Hutao/UI/Xaml/View/Page/GachaLogPage.xaml @@ -274,13 +274,6 @@ Header="{shuxm:ResourceString Name=ViewPageGachaLogRefreshByManualInput}" HeaderIcon="{shuxm:FontIcon Glyph=}" IsClickEnabled="True"/> - - - + + +