From e5c5c1c95cebd9c505f6dac18e1f433e415db154 Mon Sep 17 00:00:00 2001
From: Lightczx <1686188646@qq.com>
Date: Sat, 8 Apr 2023 22:09:07 +0800
Subject: [PATCH] improve cloud service experience
---
.../Core/Windowing/SystemBackdrop.cs | 18 +++---
.../Snap.Hutao/Package.appxmanifest | 2 +-
.../Service/Hutao/HutaoUserOptions.cs | 6 ++
.../Service/Hutao/HutaoUserService.cs | 5 +-
.../Service/Hutao/IHutaoUserService.cs | 5 ++
.../Snap.Hutao/View/Page/CultivationPage.xaml | 60 ++++++++++---------
.../Snap.Hutao/View/Page/GachaLogPage.xaml | 5 +-
.../ViewModel/GachaLog/HutaoCloudViewModel.cs | 11 ++--
8 files changed, 61 insertions(+), 51 deletions(-)
diff --git a/src/Snap.Hutao/Snap.Hutao/Core/Windowing/SystemBackdrop.cs b/src/Snap.Hutao/Snap.Hutao/Core/Windowing/SystemBackdrop.cs
index 6bcfb048..7accfb62 100644
--- a/src/Snap.Hutao/Snap.Hutao/Core/Windowing/SystemBackdrop.cs
+++ b/src/Snap.Hutao/Snap.Hutao/Core/Windowing/SystemBackdrop.cs
@@ -41,15 +41,6 @@ internal sealed class SystemBackdrop
appOptions.PropertyChanged += OnOptionsPropertyChanged;
}
- private void OnOptionsPropertyChanged(object? sender, PropertyChangedEventArgs e)
- {
- if (e.PropertyName == nameof(AppOptions.BackdropType))
- {
- type = ((AppOptions)sender!).BackdropType;
- Update();
- }
- }
-
///
/// 尝试设置背景
///
@@ -106,6 +97,15 @@ internal sealed class SystemBackdrop
}
}
+ private void OnOptionsPropertyChanged(object? sender, PropertyChangedEventArgs e)
+ {
+ if (e.PropertyName == nameof(AppOptions.BackdropType))
+ {
+ type = ((AppOptions)sender!).BackdropType;
+ Update();
+ }
+ }
+
private void OnWindowActivated(object sender, WindowActivatedEventArgs args)
{
configuration!.IsInputActive = args.WindowActivationState != WindowActivationState.Deactivated;
diff --git a/src/Snap.Hutao/Snap.Hutao/Package.appxmanifest b/src/Snap.Hutao/Snap.Hutao/Package.appxmanifest
index 97bf087f..543356e2 100644
--- a/src/Snap.Hutao/Snap.Hutao/Package.appxmanifest
+++ b/src/Snap.Hutao/Snap.Hutao/Package.appxmanifest
@@ -12,7 +12,7 @@
+ Version="1.6.2.0" />
Snap Hutao
diff --git a/src/Snap.Hutao/Snap.Hutao/Service/Hutao/HutaoUserOptions.cs b/src/Snap.Hutao/Snap.Hutao/Service/Hutao/HutaoUserOptions.cs
index b0cddecb..569a8e5f 100644
--- a/src/Snap.Hutao/Snap.Hutao/Service/Hutao/HutaoUserOptions.cs
+++ b/src/Snap.Hutao/Snap.Hutao/Service/Hutao/HutaoUserOptions.cs
@@ -15,6 +15,7 @@ internal sealed class HutaoUserOptions : ObservableObject, IOptions
/// 用户名
@@ -36,6 +37,11 @@ internal sealed class HutaoUserOptions : ObservableObject, IOptions
public bool IsLoggedIn { get => isLoggedIn; set => SetProperty(ref isLoggedIn, value); }
+ ///
+ /// 胡桃云服务是否可用
+ ///
+ public bool IsCloudServiceAllowed { get => isHutaoCloudServiceAllowed; set => SetProperty(ref isHutaoCloudServiceAllowed, value); }
+
///
public HutaoUserOptions Value { get => this; }
diff --git a/src/Snap.Hutao/Snap.Hutao/Service/Hutao/HutaoUserService.cs b/src/Snap.Hutao/Snap.Hutao/Service/Hutao/HutaoUserService.cs
index f86e7a5a..38648cfe 100644
--- a/src/Snap.Hutao/Snap.Hutao/Service/Hutao/HutaoUserService.cs
+++ b/src/Snap.Hutao/Snap.Hutao/Service/Hutao/HutaoUserService.cs
@@ -30,10 +30,7 @@ internal sealed class HutaoUserService : IHutaoUserService, IHutaoUserServiceIni
this.options = options;
}
- ///
- /// 异步初始化
- ///
- /// 任务
+ ///
public async ValueTask InitializeAsync()
{
await initializeCompletionSource.Task.ConfigureAwait(false);
diff --git a/src/Snap.Hutao/Snap.Hutao/Service/Hutao/IHutaoUserService.cs b/src/Snap.Hutao/Snap.Hutao/Service/Hutao/IHutaoUserService.cs
index 87c42535..da497111 100644
--- a/src/Snap.Hutao/Snap.Hutao/Service/Hutao/IHutaoUserService.cs
+++ b/src/Snap.Hutao/Snap.Hutao/Service/Hutao/IHutaoUserService.cs
@@ -8,4 +8,9 @@ namespace Snap.Hutao.Service.Hutao;
///
internal interface IHutaoUserService : ICastableService
{
+ ///
+ /// 异步初始化
+ ///
+ /// 任务
+ ValueTask InitializeAsync();
}
\ No newline at end of file
diff --git a/src/Snap.Hutao/Snap.Hutao/View/Page/CultivationPage.xaml b/src/Snap.Hutao/Snap.Hutao/View/Page/CultivationPage.xaml
index fb5ce6fc..5d354213 100644
--- a/src/Snap.Hutao/Snap.Hutao/View/Page/CultivationPage.xaml
+++ b/src/Snap.Hutao/Snap.Hutao/View/Page/CultivationPage.xaml
@@ -283,36 +283,38 @@
-
-
-
-
-
-
-
-
-
-
-
+
+ 16
+ 0
+ 0
+ 0
+
+
+
+
diff --git a/src/Snap.Hutao/Snap.Hutao/View/Page/GachaLogPage.xaml b/src/Snap.Hutao/Snap.Hutao/View/Page/GachaLogPage.xaml
index fe54aa10..b52d22c5 100644
--- a/src/Snap.Hutao/Snap.Hutao/View/Page/GachaLogPage.xaml
+++ b/src/Snap.Hutao/Snap.Hutao/View/Page/GachaLogPage.xaml
@@ -74,9 +74,8 @@
-
-
+
@@ -140,7 +139,7 @@
CommandParameter="{Binding SelectedArchive}"
Content="{shcm:ResourceString Name=ViewPageGachaLogHutaoCloudUpload}"/>
-
+
16
0
diff --git a/src/Snap.Hutao/Snap.Hutao/ViewModel/GachaLog/HutaoCloudViewModel.cs b/src/Snap.Hutao/Snap.Hutao/ViewModel/GachaLog/HutaoCloudViewModel.cs
index c6118df5..c1f3d4d8 100644
--- a/src/Snap.Hutao/Snap.Hutao/ViewModel/GachaLog/HutaoCloudViewModel.cs
+++ b/src/Snap.Hutao/Snap.Hutao/ViewModel/GachaLog/HutaoCloudViewModel.cs
@@ -8,6 +8,7 @@ using Snap.Hutao.Factory.Abstraction;
using Snap.Hutao.Model.Entity;
using Snap.Hutao.Service.Abstraction;
using Snap.Hutao.Service.GachaLog;
+using Snap.Hutao.Service.Hutao;
using Snap.Hutao.Service.Navigation;
using Snap.Hutao.Web.Response;
using System.Collections.ObjectModel;
@@ -26,7 +27,6 @@ internal sealed class HutaoCloudViewModel : Abstraction.ViewModel
private readonly IServiceProvider serviceProvider;
private ObservableCollection? uids;
- private bool isHutaoCloudServiceAllowed;
///
/// 构造一个新的胡桃云服务视图模型
@@ -37,6 +37,7 @@ internal sealed class HutaoCloudViewModel : Abstraction.ViewModel
hutaoCloudService = serviceProvider.GetRequiredService();
contentDialogFactory = serviceProvider.GetRequiredService();
infoBarService = serviceProvider.GetRequiredService();
+ Options = serviceProvider.GetRequiredService();
this.serviceProvider = serviceProvider;
UploadCommand = new AsyncRelayCommand(UploadAsync);
@@ -51,9 +52,9 @@ internal sealed class HutaoCloudViewModel : Abstraction.ViewModel
public ObservableCollection? Uids { get => uids; set => SetProperty(ref uids, value); }
///
- /// 是否可以使用胡桃云服务
+ /// 选项
///
- public bool IsHutaoCloudServiceAllowed { get => isHutaoCloudServiceAllowed; set => SetProperty(ref isHutaoCloudServiceAllowed, value); }
+ public HutaoUserOptions Options { get; }
///
/// 上传记录命令
@@ -95,6 +96,7 @@ internal sealed class HutaoCloudViewModel : Abstraction.ViewModel
///
protected override async Task OpenUIAsync()
{
+ await serviceProvider.GetRequiredService().InitializeAsync().ConfigureAwait(false);
await RefreshUidCollectionAsync().ConfigureAwait(false);
await ThreadHelper.SwitchToMainThreadAsync();
IsInitialized = true;
@@ -151,8 +153,7 @@ internal sealed class HutaoCloudViewModel : Abstraction.ViewModel
Response> resp = await hutaoCloudService.GetUidsAsync().ConfigureAwait(false);
await ThreadHelper.SwitchToMainThreadAsync();
- IsHutaoCloudServiceAllowed = resp.IsOk();
- if (IsHutaoCloudServiceAllowed)
+ if (Options.IsCloudServiceAllowed = resp.IsOk())
{
Uids = resp.Data!.ToObservableCollection();
}