private void refreshModelDouban()
{
App.ViewModel.DoubanItems.Clear();
App.ViewModel.DoubanPicItems.Clear();
// 如果检测到过期,则直接调用API的RefreshToken,重新来一次
if (!String.IsNullOrEmpty(PreferenceHelper.GetPreference("Douban_Token"))
&& App.DoubanAPI.IsAccessTokenOutOfDate())
{
App.DoubanAPI.RefreshToken((bool isSucess, DoubanSdkAuthError errCode, DoubanSdkAuth2Res response) =>
{
if (errCode.errCode == DoubanSdkErrCode.SUCCESS)
{
PreferenceHelper.SetPreference("Douban_Token", response.accesssToken);
PreferenceHelper.SavePreference();
Deployment.Current.Dispatcher.BeginInvoke(() =>
{
refreshModelDouban();
});
return;
}
else
{
Deployment.Current.Dispatcher.BeginInvoke(() =>
{
if (!String.IsNullOrEmpty(PreferenceHelper.GetPreference("Douban_ID")))
{
// 这里不能直接remove掉,因为有可能只是网络连接异常
//PreferenceHelper.RemoveDoubanLoginAccountPreference();
MessageBox.Show("网络连接异常或豆瓣登陆已过期~", ">_<", MessageBoxButton.OK);
}
m_progressIndicatorHelper.PopTask("Douban");
});
}
});
}
else
{
if (String.IsNullOrEmpty(PreferenceHelper.GetPreference("Douban_ID")))
{
m_progressIndicatorHelper.PopTask("Douban");
return;
}
String doubanFollowID = PreferenceHelper.GetPreference("Douban_FollowerID");
if (String.IsNullOrEmpty(doubanFollowID))
{
m_progressIndicatorHelper.PopTask("Douban");
return;
}
String strCount = PreferenceHelper.GetPreference("Douban_RecentCount");
if (string.IsNullOrEmpty(strCount))
{
strCount = "30";
}
App.DoubanAPI.GetUserTimeLine(doubanFollowID, int.Parse(strCount), DoubanFeedGetCallback);
}
}