Exemple #1
0
        public FriendViewModel(IDataService dataService, int friendNumber)
        {
            _toxModel      = dataService.ToxModel;
            _avatarManager = dataService.AvatarManager;

            FriendNumber = friendNumber;

            Conversation  = new ConversationViewModel(dataService, this);
            FileTransfers = new FileTransfersViewModel(dataService, friendNumber);
            Call          = new CallViewModel(friendNumber);

            Name = _toxModel.GetFriendName(friendNumber);
            if (Name == string.Empty)
            {
                Name = _toxModel.GetFriendPublicKey(friendNumber).ToString();
            }

            StatusMessage = _toxModel.GetFriendStatusMessage(friendNumber);
            if (StatusMessage == string.Empty)
            {
                StatusMessage = "Friend request sent.";
            }

            SetFriendStatus(_toxModel.GetFriendStatus(friendNumber));
            IsConnected = _toxModel.IsFriendOnline(friendNumber);

            _avatarManager.FriendAvatarChanged += FriendAvatarChangedHandler;

            _toxModel.FriendNameChanged             += FriendNameChangedHandler;
            _toxModel.FriendStatusMessageChanged    += FriendStatusMessageChangedHandler;
            _toxModel.FriendStatusChanged           += FriendStatusChangedHandler;
            _toxModel.FriendConnectionStatusChanged += FriendConnectionStatusChangedHandler;
        }
        private void FileTransferBlockDataContextChanged(FrameworkElement sender, DataContextChangedEventArgs args)
        {
            if (DataContext == null)
            {
                return;
            }

            _fileTransfersViewModel = DataContext as FileTransfersViewModel;
            _fileTransfersViewModel.VisualStates.PropertyChanged += VisualStatesPropertyChangedHandler;

            VisualStateManager.GoToState(this, _fileTransfersViewModel.VisualStates.BlockState.ToString(), false);
            _fileTransfersViewModel.Transfers.CollectionChanged += TransfersCollectionChangedHandler;
        }