From b7b1155cfcfbdb85d58c466decdda68adaaadc31 Mon Sep 17 00:00:00 2001
From: DismissedLight <1686188646@qq.com>
Date: Mon, 6 Feb 2023 13:45:41 +0800
Subject: [PATCH] adjust achievement UI
---
.../Resource/Localization/SH.Designer.cs | 19 ++------
.../Snap.Hutao/Resource/Localization/SH.resx | 3 --
.../UrlProvider/GachaLogUrlStokenProvider.cs | 2 +-
src/Snap.Hutao/Snap.Hutao/View/MainView.xaml | 2 +-
.../Snap.Hutao/View/Page/AchievementPage.xaml | 48 ++++++++++---------
.../Snap.Hutao/View/Page/SettingPage.xaml | 2 +-
.../ViewModel/AchievementViewModel.cs | 45 +++++++++--------
7 files changed, 59 insertions(+), 62 deletions(-)
diff --git a/src/Snap.Hutao/Snap.Hutao/Resource/Localization/SH.Designer.cs b/src/Snap.Hutao/Snap.Hutao/Resource/Localization/SH.Designer.cs
index b530fd58..a4d6f1b6 100644
--- a/src/Snap.Hutao/Snap.Hutao/Resource/Localization/SH.Designer.cs
+++ b/src/Snap.Hutao/Snap.Hutao/Resource/Localization/SH.Designer.cs
@@ -645,15 +645,6 @@ namespace Snap.Hutao.Resource.Localization {
}
}
- ///
- /// 查找类似 尚未选择任何用户以及角色 的本地化字符串。
- ///
- internal static string ServiceUserAndRoleUnselected {
- get {
- return ResourceManager.GetString("ServiceUserAndRoleUnselected", resourceCulture);
- }
- }
-
///
/// 查找类似 多个用户记录为选中状态 的本地化字符串。
///
@@ -979,7 +970,7 @@ namespace Snap.Hutao.Resource.Localization {
}
///
- /// 查找类似 设置实时便笺通知 的本地化字符串。
+ /// 查找类似 实时便笺通知设置 的本地化字符串。
///
internal static string ViewDialogDailyNoteNotificationTitle {
get {
@@ -1258,7 +1249,7 @@ namespace Snap.Hutao.Resource.Localization {
}
///
- /// 查找类似 该操作是不可逆的,该存档和其内的所有成就状态会丢失。 的本地化字符串。
+ /// 查找类似 该操作是不可逆的,该存档和其内的所有成就状态会丢失 的本地化字符串。
///
internal static string ViewModelAchievementRemoveArchiveContent {
get {
@@ -1285,7 +1276,7 @@ namespace Snap.Hutao.Resource.Localization {
}
///
- /// 查找类似 角色信息服务 [Enak API] 当前不可用 的本地化字符串。
+ /// 查找类似 角色信息服务 [Enka API] 当前不可用 的本地化字符串。
///
internal static string ViewModelAvatarPropertyEnkaApiUnavailable {
get {
@@ -2293,7 +2284,7 @@ namespace Snap.Hutao.Resource.Localization {
}
///
- /// 查找类似 导入从其他 App 中导出的数据 的本地化字符串。
+ /// 查找类似 导入来自其它 App 的数据 的本地化字符串。
///
internal static string ViewPageGachaLogImportDescription {
get {
@@ -2806,7 +2797,7 @@ namespace Snap.Hutao.Resource.Localization {
}
///
- /// 查找类似 设置当前帧率 的本地化字符串。
+ /// 查找类似 设置帧率上限 的本地化字符串。
///
internal static string ViewPageLaunchGameSetFpsHeader {
get {
diff --git a/src/Snap.Hutao/Snap.Hutao/Resource/Localization/SH.resx b/src/Snap.Hutao/Snap.Hutao/Resource/Localization/SH.resx
index 2521a54e..8d0acefa 100644
--- a/src/Snap.Hutao/Snap.Hutao/Resource/Localization/SH.resx
+++ b/src/Snap.Hutao/Snap.Hutao/Resource/Localization/SH.resx
@@ -312,9 +312,6 @@
元数据校验文件下载失败
-
- 尚未选择任何用户以及角色
-
多个用户记录为选中状态
diff --git a/src/Snap.Hutao/Snap.Hutao/Service/GachaLog/UrlProvider/GachaLogUrlStokenProvider.cs b/src/Snap.Hutao/Snap.Hutao/Service/GachaLog/UrlProvider/GachaLogUrlStokenProvider.cs
index c6c28269..11b1a33e 100644
--- a/src/Snap.Hutao/Snap.Hutao/Service/GachaLog/UrlProvider/GachaLogUrlStokenProvider.cs
+++ b/src/Snap.Hutao/Snap.Hutao/Service/GachaLog/UrlProvider/GachaLogUrlStokenProvider.cs
@@ -51,7 +51,7 @@ internal class GachaLogUrlStokenProvider : IGachaLogUrlProvider
}
else
{
- return new(false, SH.ServiceUserAndRoleUnselected);
+ return new(false, SH.MustSelectUserAndUid);
}
}
}
\ No newline at end of file
diff --git a/src/Snap.Hutao/Snap.Hutao/View/MainView.xaml b/src/Snap.Hutao/Snap.Hutao/View/MainView.xaml
index 889a668e..ac3f5a1e 100644
--- a/src/Snap.Hutao/Snap.Hutao/View/MainView.xaml
+++ b/src/Snap.Hutao/Snap.Hutao/View/MainView.xaml
@@ -23,7 +23,7 @@
diff --git a/src/Snap.Hutao/Snap.Hutao/View/Page/AchievementPage.xaml b/src/Snap.Hutao/Snap.Hutao/View/Page/AchievementPage.xaml
index a0db1cc0..d34e6d8c 100644
--- a/src/Snap.Hutao/Snap.Hutao/View/Page/AchievementPage.xaml
+++ b/src/Snap.Hutao/Snap.Hutao/View/Page/AchievementPage.xaml
@@ -177,47 +177,49 @@
CornerRadius="{ThemeResource ControlCornerRadius}">
-
-
+
-
-
-
-
-
-
-
-
+ IsChecked="{Binding IsChecked, Mode=TwoWay}"/>
+
+
-
+
+
+
+
+
+
+
+
+
diff --git a/src/Snap.Hutao/Snap.Hutao/View/Page/SettingPage.xaml b/src/Snap.Hutao/Snap.Hutao/View/Page/SettingPage.xaml
index 3acbc7bf..144f2ca3 100644
--- a/src/Snap.Hutao/Snap.Hutao/View/Page/SettingPage.xaml
+++ b/src/Snap.Hutao/Snap.Hutao/View/Page/SettingPage.xaml
@@ -175,7 +175,7 @@
diff --git a/src/Snap.Hutao/Snap.Hutao/ViewModel/AchievementViewModel.cs b/src/Snap.Hutao/Snap.Hutao/ViewModel/AchievementViewModel.cs
index 5e3ebfe5..842c258b 100644
--- a/src/Snap.Hutao/Snap.Hutao/ViewModel/AchievementViewModel.cs
+++ b/src/Snap.Hutao/Snap.Hutao/ViewModel/AchievementViewModel.cs
@@ -20,6 +20,9 @@ using Snap.Hutao.View.Dialog;
using System.Collections.ObjectModel;
using System.Runtime.InteropServices;
using Windows.Storage.Pickers;
+using BindingAchievementGoal = Snap.Hutao.Model.Binding.Achievement.AchievementGoal;
+using EntityAchievementArchive = Snap.Hutao.Model.Entity.AchievementArchive;
+using MetadataAchievementGoal = Snap.Hutao.Model.Metadata.Achievement.AchievementGoal;
namespace Snap.Hutao.ViewModel;
@@ -42,10 +45,10 @@ internal class AchievementViewModel : Abstraction.ViewModel, INavigationRecipien
private readonly TaskCompletionSource openUICompletionSource = new();
private AdvancedCollectionView? achievements;
- private List? achievementGoals;
- private Model.Binding.Achievement.AchievementGoal? selectedAchievementGoal;
- private ObservableCollection? archives;
- private Model.Entity.AchievementArchive? selectedArchive;
+ private List? achievementGoals;
+ private BindingAchievementGoal? selectedAchievementGoal;
+ private ObservableCollection? archives;
+ private EntityAchievementArchive? selectedArchive;
private bool isIncompletedItemsFirst = true;
private string searchText = string.Empty;
private string? finishDescription;
@@ -87,7 +90,7 @@ internal class AchievementViewModel : Abstraction.ViewModel, INavigationRecipien
///
/// 成就存档集合
///
- public ObservableCollection? Archives
+ public ObservableCollection? Archives
{
get => archives;
set => SetProperty(ref archives, value);
@@ -96,7 +99,7 @@ internal class AchievementViewModel : Abstraction.ViewModel, INavigationRecipien
///
/// 选中的成就存档
///
- public Model.Entity.AchievementArchive? SelectedArchive
+ public EntityAchievementArchive? SelectedArchive
{
get => selectedArchive;
set
@@ -124,7 +127,7 @@ internal class AchievementViewModel : Abstraction.ViewModel, INavigationRecipien
///
/// 成就分类
///
- public List? AchievementGoals
+ public List? AchievementGoals
{
get => achievementGoals;
set => SetProperty(ref achievementGoals, value);
@@ -133,7 +136,7 @@ internal class AchievementViewModel : Abstraction.ViewModel, INavigationRecipien
///
/// 选中的成就分类
///
- public Model.Binding.Achievement.AchievementGoal? SelectedAchievementGoal
+ public BindingAchievementGoal? SelectedAchievementGoal
{
get => selectedAchievementGoal;
set
@@ -165,7 +168,11 @@ internal class AchievementViewModel : Abstraction.ViewModel, INavigationRecipien
///
/// 完成进度描述
///
- public string? FinishDescription { get => finishDescription; set => SetProperty(ref finishDescription, value); }
+ public string? FinishDescription
+ {
+ get => finishDescription;
+ set => SetProperty(ref finishDescription, value);
+ }
///
/// 打开页面命令
@@ -235,18 +242,18 @@ internal class AchievementViewModel : Abstraction.ViewModel, INavigationRecipien
{
try
{
- List sortedGoals;
- ObservableCollection archives;
+ List sortedGoals;
+ ObservableCollection archives;
ThrowIfViewDisposed();
using (await DisposeLock.EnterAsync(CancellationToken).ConfigureAwait(false))
{
ThrowIfViewDisposed();
- List goals = await metadataService.GetAchievementGoalsAsync(CancellationToken).ConfigureAwait(false);
+ List goals = await metadataService.GetAchievementGoalsAsync(CancellationToken).ConfigureAwait(false);
sortedGoals = goals
.OrderBy(goal => goal.Order)
- .Select(goal => new Model.Binding.Achievement.AchievementGoal(goal))
+ .Select(goal => new BindingAchievementGoal(goal))
.ToList();
archives = await achievementService.GetArchiveCollectionAsync().ConfigureAwait(false);
}
@@ -280,7 +287,7 @@ internal class AchievementViewModel : Abstraction.ViewModel, INavigationRecipien
if (isOk)
{
- ArchiveAddResult result = await achievementService.TryAddArchiveAsync(Model.Entity.AchievementArchive.Create(name)).ConfigureAwait(false);
+ ArchiveAddResult result = await achievementService.TryAddArchiveAsync(EntityAchievementArchive.Create(name)).ConfigureAwait(false);
switch (result)
{
@@ -450,7 +457,7 @@ internal class AchievementViewModel : Abstraction.ViewModel, INavigationRecipien
}
}
- private async Task TryImportUIAFInternalAsync(Model.Entity.AchievementArchive archive, UIAF uiaf)
+ private async Task TryImportUIAFInternalAsync(EntityAchievementArchive archive, UIAF uiaf)
{
if (uiaf.IsCurrentVersionSupported())
{
@@ -484,7 +491,7 @@ internal class AchievementViewModel : Abstraction.ViewModel, INavigationRecipien
}
#endregion
- private async Task UpdateAchievementsAsync(Model.Entity.AchievementArchive archive)
+ private async Task UpdateAchievementsAsync(EntityAchievementArchive archive)
{
List rawAchievements = await metadataService.GetAchievementsAsync(CancellationToken).ConfigureAwait(false);
List combined;
@@ -523,7 +530,7 @@ internal class AchievementViewModel : Abstraction.ViewModel, INavigationRecipien
}
}
- private void UpdateAchievementsFilter(Model.Binding.Achievement.AchievementGoal? goal)
+ private void UpdateAchievementsFilter(BindingAchievementGoal? goal)
{
if (Achievements != null)
{
@@ -572,11 +579,11 @@ internal class AchievementViewModel : Abstraction.ViewModel, INavigationRecipien
private struct GoalAggregation
{
- public readonly Model.Binding.Achievement.AchievementGoal AchievementGoal;
+ public readonly BindingAchievementGoal AchievementGoal;
public int Finished;
public int Count;
- public GoalAggregation(Model.Binding.Achievement.AchievementGoal goal)
+ public GoalAggregation(BindingAchievementGoal goal)
{
AchievementGoal = goal;
}