修复登录返回后闪退的问题

pull/278/head
leiurayer 4 years ago
parent d6cfc47b50
commit 95a02925d5

@ -90,7 +90,7 @@ namespace DownKyi.Core.Storage
};
coverDb.Update(newCover);
coverDb.Close();
//coverDb.Close();
return $"{StorageManager.GetCover()}/{cover.Md5}";
}
else
@ -108,12 +108,12 @@ namespace DownKyi.Core.Storage
};
coverDb.Update(newCover);
coverDb.Close();
//coverDb.Close();
return $"{StorageManager.GetCover()}/{md5}";
}
else
{
coverDb.Close();
//coverDb.Close();
return null;
}
}
@ -133,12 +133,12 @@ namespace DownKyi.Core.Storage
};
coverDb.Insert(newCover);
coverDb.Close();
//coverDb.Close();
return $"{StorageManager.GetCover()}/{md5}";
}
else
{
coverDb.Close();
//coverDb.Close();
return null;
}
}

@ -73,7 +73,7 @@ namespace DownKyi.Core.Storage
Md5 = header.Md5
};
headerDb.Update(newHeader);
headerDb.Close();
//headerDb.Close();
return $"{StorageManager.GetHeader()}/{header.Md5}";
}
else
@ -89,12 +89,12 @@ namespace DownKyi.Core.Storage
Md5 = md5
};
headerDb.Insert(newHeader);
headerDb.Close();
//headerDb.Close();
return $"{StorageManager.GetHeader()}/{md5}";
}
else
{
headerDb.Close();
//headerDb.Close();
return null;
}
}
@ -112,12 +112,12 @@ namespace DownKyi.Core.Storage
Md5 = md5
};
headerDb.Insert(newHeader);
headerDb.Close();
//headerDb.Close();
return $"{StorageManager.GetHeader()}/{md5}";
}
else
{
headerDb.Close();
//headerDb.Close();
return null;
}
}

@ -227,65 +227,73 @@ namespace DownKyi.ViewModels
/// </summary>
private async void UpdateUserInfo()
{
LoginPanelVisibility = Visibility.Hidden;
// 检查本地是否存在login文件没有则说明未登录
if (!File.Exists(StorageManager.GetLogin()))
try
{
LoginPanelVisibility = Visibility.Visible;
Header = new BitmapImage(new Uri("pack://application:,,,/Resources/default_header.jpg"));
UserName = null;
return;
}
LoginPanelVisibility = Visibility.Hidden;
await Task.Run(new Action(() =>
{
// 获取用户信息
var userInfo = UserInfo.GetUserInfoForNavigation();
if (userInfo != null)
{
SettingsManager.GetInstance().SetUserInfo(new UserInfoSettings
{
Mid = userInfo.Mid,
Name = userInfo.Name,
IsLogin = userInfo.IsLogin,
IsVip = userInfo.VipStatus == 1
});
}
else
// 检查本地是否存在login文件没有则说明未登录
if (!File.Exists(StorageManager.GetLogin()))
{
SettingsManager.GetInstance().SetUserInfo(new UserInfoSettings
{
Mid = -1,
Name = "",
IsLogin = false,
IsVip = false
});
LoginPanelVisibility = Visibility.Visible;
Header = new BitmapImage(new Uri("pack://application:,,,/Resources/default_header.jpg"));
UserName = null;
return;
}
PropertyChangeAsync(new Action(() =>
await Task.Run(new Action(() =>
{
LoginPanelVisibility = Visibility.Visible;
// 获取用户信息
var userInfo = UserInfo.GetUserInfoForNavigation();
if (userInfo != null)
{
if (userInfo.Face != null)
SettingsManager.GetInstance().SetUserInfo(new UserInfoSettings
{
Header = new StorageHeader().GetHeaderThumbnail(userInfo.Mid, userInfo.Name, userInfo.Face, 36, 36);
Mid = userInfo.Mid,
Name = userInfo.Name,
IsLogin = userInfo.IsLogin,
IsVip = userInfo.VipStatus == 1
});
}
else
{
SettingsManager.GetInstance().SetUserInfo(new UserInfoSettings
{
Mid = -1,
Name = "",
IsLogin = false,
IsVip = false
});
}
PropertyChangeAsync(new Action(() =>
{
LoginPanelVisibility = Visibility.Visible;
if (userInfo != null)
{
if (userInfo.Face != null)
{
Header = new StorageHeader().GetHeaderThumbnail(userInfo.Mid, userInfo.Name, userInfo.Face, 36, 36);
}
else
{
Header = new BitmapImage(new Uri("pack://application:,,,/Resources/default_header.jpg"));
}
UserName = userInfo.Name;
}
else
{
Header = new BitmapImage(new Uri("pack://application:,,,/Resources/default_header.jpg"));
UserName = null;
}
UserName = userInfo.Name;
}
else
{
Header = new BitmapImage(new Uri("pack://application:,,,/Resources/default_header.jpg"));
UserName = null;
}
}));
}));
}));
}
catch (Exception e)
{
Core.Utils.Debugging.Console.PrintLine("UpdateUserInfo()发生异常: {0}", e);
LogManager.Error(Tag, e);
}
}
#endregion

@ -98,26 +98,34 @@ namespace DownKyi.ViewModels
/// </summary>
private void Login()
{
var loginUrl = LoginQR.GetLoginUrl();
if (loginUrl == null) { return; }
if (loginUrl.Status != true)
try
{
ExecuteBackSpace();
return;
}
var loginUrl = LoginQR.GetLoginUrl();
if (loginUrl == null) { return; }
if (loginUrl.Data == null || loginUrl.Data.Url == null)
{
eventAggregator.GetEvent<MessageEvent>().Publish(DictionaryResource.GetString("GetLoginUrlFailed"));
return;
}
if (loginUrl.Status != true)
{
ExecuteBackSpace();
return;
}
PropertyChangeAsync(new Action(() => { LoginQRCode = LoginQR.GetLoginQRCode(loginUrl.Data.Url); }));
Core.Utils.Debugging.Console.PrintLine(loginUrl.Data.Url + "\n");
LogManager.Debug(Tag, loginUrl.Data.Url);
if (loginUrl.Data == null || loginUrl.Data.Url == null)
{
eventAggregator.GetEvent<MessageEvent>().Publish(DictionaryResource.GetString("GetLoginUrlFailed"));
return;
}
PropertyChangeAsync(new Action(() => { LoginQRCode = LoginQR.GetLoginQRCode(loginUrl.Data.Url); }));
Core.Utils.Debugging.Console.PrintLine(loginUrl.Data.Url + "\n");
LogManager.Debug(Tag, loginUrl.Data.Url);
GetLoginStatus(loginUrl.Data.OauthKey);
GetLoginStatus(loginUrl.Data.OauthKey);
}
catch (Exception e)
{
Core.Utils.Debugging.Console.PrintLine("Login()发生异常: {0}", e);
LogManager.Error(Tag, e);
}
}
/// <summary>

Loading…
Cancel
Save