public async Task UpdateFollowing(bool useCursor = false)
        {
            if (UpdatingFollowing)
            {
                return;
            }

            if (Tokens == null)
            {
                return;
            }

            if (useCursor && _followingCursor == 0)
            {
                return;
            }

            UpdatingFollowing = true;

            if (!useCursor || _followingCursor == 0)
            {
                Following.Clear();
            }

            try
            {
                var param = new Dictionary <string, object>
                {
                    { "user_id", Tokens.UserId },
                    { "count", 20 }
                };
                if (useCursor && _followingCursor != 0)
                {
                    param.Add("cursor", _followingCursor);
                }

                var following = await Tokens.Friends.ListAsync(param);

                if (!useCursor || _followingCursor == 0)
                {
                    Following.Clear();
                }

                foreach (var user in following)
                {
                    Following.Add(user);
                }

                _followingCursor = following.NextCursor;
            }
            catch
            {
                if (!useCursor || _followingCursor == 0)
                {
                    Following.Clear();
                }

                UpdatingFollowing = false;
                return;
            }


            UpdatingFollowing = false;
        }