Example #1
0
        internal void UpdatePresence(XmppJid jid, Presence presence)
        {
            lock (syncObject)
            {
                XmppContactResource resource = resources
                                               .Where(contactResource => contactResource.ResourceId.Equals(jid))
                                               .SingleOrDefault();

                if (resource == null)
                {
                    resource = new XmppContactResource(session, this, jid);
                    resources.Add(resource);
                }

                resource.Update(presence);

                // Remove the resource information if the contact has gone offline
                if (!resource.IsDefaultResource &&
                    resource.Presence.PresenceStatus == XmppPresenceState.Offline)
                {
                    resources.Remove(resource);
                }

                //NotifyPropertyChanged(() => Presence);
                //NotifyPropertyChanged(() => Resource);
            }
        }
Example #2
0
        internal void AddDefaultResource()
        {
            var defaultPresence = new Presence();
            var contactResource = new XmppContactResource(session, this, ContactId);
            var resourceJid     = new XmppJid(contactId.UserName, ContactId.DomainName, Guid.NewGuid().ToString());

            // Add a default resource
            defaultPresence.TypeSpecified = true;
            defaultPresence.From          = resourceJid;
            defaultPresence.Type          = PresenceType.Unavailable;

            defaultPresence.Items.Add(XmppContactResource.DefaultPresencePriorityValue);

            contactResource.Update(defaultPresence);

            resources.Add(contactResource);
        }
Example #3
0
        internal void UpdatePresence(XmppJid jid, Presence presence)
        {
            lock (syncObject)
            {
                XmppContactResource resource = resources
                    .Where(contactResource => contactResource.ResourceId.Equals(jid))
                    .SingleOrDefault();

                if (resource == null)
                {
                    resource = new XmppContactResource(session, this, jid);
                    resources.Add(resource);
                }

                resource.Update(presence);

                // Remove the resource information if the contact has gone offline
                if (!resource.IsDefaultResource &&
                    resource.Presence.PresenceStatus == XmppPresenceState.Offline)
                {
                    resources.Remove(resource);
                }

                //NotifyPropertyChanged(() => Presence);
                //NotifyPropertyChanged(() => Resource);
            }
        }
Example #4
0
        internal void AddDefaultResource()
        {
            var defaultPresence = new Presence();
            var contactResource = new XmppContactResource(session, this, ContactId);
            var resourceJid = new XmppJid(contactId.UserName, ContactId.DomainName, Guid.NewGuid().ToString());

            // Add a default resource
            defaultPresence.TypeSpecified = true;
            defaultPresence.From = resourceJid;
            defaultPresence.Type = PresenceType.Unavailable;

            defaultPresence.Items.Add(XmppContactResource.DefaultPresencePriorityValue);

            contactResource.Update(defaultPresence);

            resources.Add(contactResource);
        }