コード例 #1
0
        private void OnNewContactAdded(object sender, ContactEventArgs e)
        {
            //************************************************************************************************************************************
            // On New contact added in Call History and Chat.
            //************************************************************************************************************************************
            if (ServiceManager.Instance.Dispatcher.Thread != System.Threading.Thread.CurrentThread)
            {
                ServiceManager.Instance.Dispatcher.BeginInvoke((Action)(() => this.OnNewContactAdded(sender, e)));
                return;
            }

            // search and update all items
            var contact = _contactService.FindContact(new ContactID(e.Contact));

            if (contact != null && contact.IsLinphoneContact)
            {
                lock (this.Calls)
                {
                    foreach (var call in Calls)
                    {
                        if (call.CallEvent.RemoteParty.TrimSipPrefix() == contact.ID)
                        {
                            call.UpdateContact(contact);
                            call.AllowAddContact = false;
                        }
                    }
                }
                CallsListView.Refresh();
            }
        }
コード例 #2
0
        private void ContactAdded(object sender, ContactEventArgs e)
        {
            //************************************************************************************************************************************
            // Contact added in Contact History and Chat window.
            //************************************************************************************************************************************
            if (ServiceManager.Instance.Dispatcher.Thread != System.Threading.Thread.CurrentThread)
            {
                ServiceManager.Instance.Dispatcher.BeginInvoke((Action)(() => this.ContactAdded(sender, e)));
                return;
            }

            var contact = _contactsService.FindContact(e.Contact);

            if (contact != null)
            {
                AddContact(contact, true);
            }
        }
コード例 #3
0
        private void OnLoggedContactUpdated(object sender, ContactEventArgs e)
        {
            //****************************************************************************************
            // Updating info of Logged in contact which was login in this application
            //*****************************************************************************************
            if (ServiceManager.Instance.Dispatcher.Thread != Thread.CurrentThread)
            {
                ServiceManager.Instance.Dispatcher.BeginInvoke(DispatcherPriority.Normal,
                                                               new EventHandler <ContactEventArgs>(OnChatContactAdded), sender, new object[] { e });
                return;
            }


            if (_loggedInContactViewModel == null || _loggedInContactViewModel.Contact != e.Contact)
            {
                var loggedInContact = _contactsManager.FindContact(e.Contact);
                if (loggedInContact != null)
                {
                    _loggedInContactViewModel = new ContactViewModel(loggedInContact);
                }
            }
        }