public AskAuthorization(Contact contact)
            : base(_keyBase, contact.Jid.Bare)
        {
            InitializeComponent();

            DataContext = contact;
            _contact.Content = contact;
        }
        public EventPresenceChanged(Contact contact, Presence oldPresence, Presence newPresence)
            : base(String.Empty, EventSeverity.Info)
        {
            _contact = contact;
            _oldPresence = oldPresence;
            _newPresence = newPresence;

            Expiration = DateTime.Now.AddSeconds(Settings.Default.UI_Notify_Presence_Exp);
        }
        public AskAuthorization(Presence presence)
            : base(_keyBase, presence.From.Bare)
        {
            InitializeComponent();

            Contact contact = new Contact(presence);

            DataContext = contact;
            _contact.Content = contact;
        }
Ejemplo n.º 4
0
        private void Show(Contact contact)
        {
            try
            {
                AskAuthorization authorization = new AskAuthorization(contact);

                authorization.Show();
                authorization.Activate();
            }

            catch (WindowExistsException e)
            {
                e.ActivateControl();
            }
        }
Ejemplo n.º 5
0
        public static Contact GetContact(RosterItem rosterItem)
        {
            Contact contact = null;

            try
            {
                using (SQLiteCommand command = _connection.CreateCommand())
                {
                    command.CommandText = "SELECT * FROM [Contact] WHERE [Jid]=@jid";

                    command.Parameters.Add(new SQLiteParameter("jid", rosterItem.Jid.Bare));

                    SQLiteDataReader reader = command.ExecuteReader();

                    if (reader.Read())
                    {
                        contact = new Contact(reader, rosterItem);
                    }

                    reader.Close();
                }
            }

            catch (Exception e)
            {
                Events.Instance.OnEvent(e, new EventError(e.Message, null));
            }

            return contact;
        }
Ejemplo n.º 6
0
        public static void SaveContact(Contact contact)
        {
            try
            {
                Dictionary<string, object> values = contact.GetData();

                SaveOrUpdate(values, "Jid", "Contact", false, _connection);
            }

            catch (Exception e)
            {
                Events.Instance.OnEvent(e, new EventError(e.Message, null));
            }
        }
Ejemplo n.º 7
0
        private void VcardResultAuth(object sender, IQ iq, object data)
        {
            Contact contact;

            if (data is Presence)
            {
                contact = new Contact((Presence) data);
            }
            else
            {
                contact = (Contact) data;
            }

            if (iq.Type == IqType.error || iq.Error != null)
            {
                if (iq.Error.Code == ErrorCode.NotFound
                    || iq.Error.Code == ErrorCode.NotImplemented
                    || iq.Error.Code == ErrorCode.Unauthorized)
                {
                    contact.SetVcard(null);
                }
                else
                {
                    Events.Instance.OnEvent(this,
                                            new EventError(String.Format("V-Card receiving error from {0}", iq.From),
                                                           null));
                }
            }
            else if (iq.Type == IqType.result)
            {
                contact.SetVcard(iq.Vcard);
            }
        }
Ejemplo n.º 8
0
        private void RemoveRosterItem(Contact contact)
        {
            lock (_items._syncObject)
            {
                MetaContact metaContact = FindMetaContact(contact.Jid);

                if (metaContact != null)
                {
                    metaContact.SubContacts.Remove(contact);

                    _realContacts.Remove(contact.Jid.Bare.ToLowerInvariant());

                    if (metaContact.SubContacts.Count == 0)
                    {
                        _items.Remove(metaContact);
                    }
                }
            }
        }
Ejemplo n.º 9
0
        private void RefreshIqAvatar(Contact contact)
        {
            if (contact.Presence != null)
            {
                Avatar avatar = contact.Presence.SelectSingleElement(typeof (Avatar)) as Avatar;

                if (avatar != null)
                {
                    string hash;
                    Storage.GetIqAvatar(contact.Jid.Bare, out hash);

                    if (avatar.Hash.ToLowerInvariant() != contact.AvatarHash)
                    {
                        AvatarIq aiq = new AvatarIq(IqType.get, contact.FullJid);
                        Account.Instance.XmppConnection.IqGrabber.SendIq(aiq, new IqCB(IqAvatarResult), contact);
                    }
                }
            }
        }
Ejemplo n.º 10
0
 private void AskForDisco(Contact contact)
 {
     Account.Instance.DiscoMan.DiscoverInformation(contact.FullJid,
                                                  new IqCB(OnDiscoInfoResult), contact);
 }
Ejemplo n.º 11
0
        private Contact AddRosterItem(RosterItem item)
        {
            Contact contact;

            lock (_items._syncObject)
            {
                // for now
                contact = Database.GetContact(item);

                MetaContact metaContact = null;

                if (contact != null)
                {
                    metaContact = Database.GetMetaContact(contact.MetaId);
                }

                if (metaContact == null)
                {
                    metaContact = new MetaContact();
                    Database.SaveMetaContact(metaContact);

                    contact = new Contact(item, metaContact.Id);
                    Database.SaveContact(contact);
                }

                metaContact.AddContact(contact);

                _realContacts.Add(item.Jid.Bare.ToLowerInvariant(), contact);

                _items.Add(metaContact);
            }

            Vcard vcard = Storage.GetVcard(contact.Jid, 99999);

            if (vcard != null)
            {
                contact.SetVcard(vcard);
                contact.HasVCardRecieved = false;
            }

            return contact;
        }
Ejemplo n.º 12
0
        public IContact FindContactOrGetNew(Jid jid)
        {
            Contact contact;

            lock (Items._syncObject)
            {
                contact = FindContact(jid);
            }

            if (contact == null)
            {
                Presence presence = new Presence(ShowType.NONE, string.Empty);
                presence.From = jid;

                contact = new Contact(presence);
            }

            return contact;
        }
Ejemplo n.º 13
0
 public void Ask(Contact contact)
 {
     App.InvokeSafe(App._dispatcherPriority,
                    new ShowCallback(Show), contact);
 }
Ejemplo n.º 14
0
        public MetaContact(Contact contact)
        {
            _activeContact = contact;

            AddContact(contact);
        }
Ejemplo n.º 15
0
        public void AddContact(Contact contact)
        {
            contact.PropertyChanged += contact_PropertyChanged;

            lock (SubContacts._syncObject)
            {
                SubContacts.Add(contact);

                if (_activeContact == null)
                {
                    _activeContact = contact;
                }
            }
        }