private void GetFriendList(int page)
{
m_progressIndicatorHelper.PushTask();
String myID = PreferenceHelper.GetPreference("Douban_ID");
if (String.IsNullOrEmpty(myID))
return;
if (!m_bAllListLoaded)
{
m_doubanAPI.GetFollowingUserList(myID, (GetFollowingUserListEventArgs e) =>
{
if (e.errorCode == DoubanSdkErrCode.SUCCESS && e.userList != null)
{
m_allList = e.userList;
m_pageCount = (int)Math.Ceiling((double)m_allList.Count / (double)MAX_PER_PAGE);
Deployment.Current.Dispatcher.BeginInvoke(() =>
{
FriendList.Clear();
int lengthLeft = m_allList.Count - page * MAX_PER_PAGE;
int cutLength = lengthLeft < MAX_PER_PAGE ? lengthLeft : MAX_PER_PAGE;
List<FollowingUserInfo> tempList = m_allList.GetRange(page * MAX_PER_PAGE, cutLength);
foreach (FollowingUserInfo user in tempList)
{
FriendList.Add(user);
}
m_progressIndicatorHelper.PopTask();
});
}
else
{
m_progressIndicatorHelper.PopTask();
}
});
}
else
{
Deployment.Current.Dispatcher.BeginInvoke(() =>
{
FriendList.Clear();
int lengthLeft = m_allList.Count - page * MAX_PER_PAGE;
int cutLength = lengthLeft < MAX_PER_PAGE ? lengthLeft : MAX_PER_PAGE;
List<FollowingUserInfo> tempList = m_allList.GetRange(page * MAX_PER_PAGE, cutLength);
foreach (FollowingUserInfo user in tempList)
{
FriendList.Add(user);
}
m_progressIndicatorHelper.PopTask();
});
}
}