Beispiel #1
0
        /// <summary>
        ///     In case a friend is removed from the friend list, we remove all broken transfers associated with him/her as well.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void FriendListChangedHandler(object sender, FriendListChangedEventArgs e)
        {
            if (e.Action == FriendListChangedAction.Remove)
            {
                foreach (var entry in _futureAccesList.Entries)
                {
                    var metadata = DeserializeMetadata(entry.Metadata);

                    if (metadata.FriendNumber == e.FriendNumber)
                    {
                        _futureAccesList.Remove(entry.Token);
                    }
                }
            }
        }
Beispiel #2
0
        private void FriendListChangedHandler(object sender, FriendListChangedEventArgs e)
        {
            DispatcherHelper.CheckBeginInvokeOnUI(
                () =>
            {
                switch (e.Action)
                {
                case FriendListChangedAction.Add:
                    Friends.Add(new FriendViewModel(_dataService, e.FriendNumber));
                    return;

                case FriendListChangedAction.Remove:
                    var friendToRemove = FindFriend(e.FriendNumber);

                    if (friendToRemove == SelectedFriend)
                    // It means that we just removed the currently selected friend.
                    {
                        // So select the one right above it:
                        var indexOfFriend = Friends.IndexOf(friendToRemove);
                        SelectedFriend    = (indexOfFriend - 1) > 0 ? Friends[indexOfFriend - 1] : Friends[0];
                        // TODO: Handle case of removal of the last friend!!!
                    }

                    Friends.Remove(friendToRemove);
                    return;

                case FriendListChangedAction.Reset:
                    Friends.Clear();
                    foreach (var friendNumber in _toxModel.Friends)
                    {
                        Friends.Add(new FriendViewModel(_dataService, friendNumber));
                    }
                    return;
                }
            });
        }
Beispiel #3
0
        private async void FriendListChangedHandler(object sender, FriendListChangedEventArgs e)
        {
            await SaveDataAsync();

            FriendListChanged?.Invoke(this, e);
        }
        /// <summary>
        ///     In case a friend is removed from the friend list, we remove all broken transfers associated with him/her as well.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void FriendListChangedHandler(object sender, FriendListChangedEventArgs e)
        {
            if (e.Action == FriendListChangedAction.Remove)
            {
                foreach (var entry in _futureAccesList.Entries)
                {
                    var metadata = DeserializeMetadata(entry.Metadata);

                    if (metadata.FriendNumber == e.FriendNumber)
                    {
                        _futureAccesList.Remove(entry.Token);
                    }
                }
            }
        }