修正未登录时不能正常获取wbi口令的问题

pull/896/head
leiurayer 1 year ago
parent 35ca6a3442
commit 9da37a7f28

@ -27,8 +27,7 @@ namespace DownKyi.Core.BiliApi.Users
UserInfoForNavigationOrigin userInfo = JsonConvert.DeserializeObject<UserInfoForNavigationOrigin>(response); UserInfoForNavigationOrigin userInfo = JsonConvert.DeserializeObject<UserInfoForNavigationOrigin>(response);
if (userInfo == null || userInfo.Data == null) { return null; } if (userInfo == null || userInfo.Data == null) { return null; }
if (userInfo.Data.IsLogin) { return userInfo.Data; } return userInfo.Data;
else { return null; }
} }
catch (Exception e) catch (Exception e)
{ {

@ -229,10 +229,13 @@ namespace DownKyi.ViewModels
InputText = string.Empty; InputText = string.Empty;
} }
private UserInfoForNavigation GetUserInfo() private async Task<UserInfoForNavigation> GetUserInfo()
{
UserInfoForNavigation userInfo = null;
await Task.Run(new Action(() =>
{ {
// 获取用户信息 // 获取用户信息
var userInfo = UserInfo.GetUserInfoForNavigation(); userInfo = UserInfo.GetUserInfoForNavigation();
if (userInfo != null) if (userInfo != null)
{ {
SettingsManager.GetInstance().SetUserInfo(new UserInfoSettings SettingsManager.GetInstance().SetUserInfo(new UserInfoSettings
@ -256,18 +259,29 @@ namespace DownKyi.ViewModels
}); });
} }
}));
return userInfo; return userInfo;
} }
/// <summary> /// <summary>
/// 更新用户登录信息 /// 更新用户登录信息
/// </summary> /// </summary>
private async void UpdateUserInfo() private async void UpdateUserInfo(bool isBackgroud = false)
{ {
try try
{ {
if (isBackgroud)
{
// 获取用户信息
await GetUserInfo();
return;
}
LoginPanelVisibility = Visibility.Hidden; LoginPanelVisibility = Visibility.Hidden;
// 获取用户信息
var userInfo = await GetUserInfo();
// 检查本地是否存在login文件没有则说明未登录 // 检查本地是否存在login文件没有则说明未登录
if (!File.Exists(StorageManager.GetLogin())) if (!File.Exists(StorageManager.GetLogin()))
{ {
@ -277,13 +291,6 @@ namespace DownKyi.ViewModels
return; return;
} }
await Task.Run(new Action(() =>
{
// 获取用户信息
var userInfo = GetUserInfo();
PropertyChangeAsync(new Action(() =>
{
LoginPanelVisibility = Visibility.Visible; LoginPanelVisibility = Visibility.Visible;
if (userInfo != null) if (userInfo != null)
@ -303,8 +310,7 @@ namespace DownKyi.ViewModels
Header = new BitmapImage(new Uri("pack://application:,,,/Resources/default_header.jpg")); Header = new BitmapImage(new Uri("pack://application:,,,/Resources/default_header.jpg"));
UserName = null; UserName = null;
} }
}));
}));
} }
catch (Exception e) catch (Exception e)
{ {
@ -328,6 +334,8 @@ namespace DownKyi.ViewModels
string parameter = navigationContext.Parameters.GetValue<string>("Parameter"); string parameter = navigationContext.Parameters.GetValue<string>("Parameter");
if (parameter == null) if (parameter == null)
{ {
// 其他情况只更新设置的用户信息不更新UI
UpdateUserInfo(true);
return; return;
} }
@ -346,10 +354,10 @@ namespace DownKyi.ViewModels
{ {
UpdateUserInfo(); UpdateUserInfo();
} }
// 其他情况只更新设置的用户信息不更新UI
else else
{ {
GetUserInfo(); // 其他情况只更新设置的用户信息不更新UI
UpdateUserInfo(true);
} }
} }

Loading…
Cancel
Save