修正未登录时不能正常获取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);
if (userInfo == null || userInfo.Data == null) { return null; }
if (userInfo.Data.IsLogin) { return userInfo.Data; }
else { return null; }
return userInfo.Data;
}
catch (Exception e)
{

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

Loading…
Cancel
Save