Ejemplo n.º 1
0
 /// <summary>
 /// Constructeur
 /// </summary>
 public Contact(agsXMPP.Jid jid, string nickname, agsXMPP.Xml.Dom.ElementList grps)
 {
     _identity = new Identity(jid);
     if (nickname != null && nickname.Trim() != string.Empty)
     {
         _identity.nickname = nickname;
     }
     if (grps != null)
     {
         foreach (agsXMPP.protocol.Base.Group g in grps)
         {
             if (!_groups.Contains(g.Name))
             {
                 _groups.Add(g.Name);
             }
         }
     }
     _status = new Status();
     _status.type = Enums.StatusType.Unavailable;
     _status.message = string.Empty;
     _mood = new Mood();
     _mood.type = Enums.MoodType.none;
     _mood.text = string.Empty;
     _activity = new Activity();
     _activity.type = Enums.ActivityType.none;
     _activity.text = string.Empty;
     _location = new Location();
     _location.altitude = 0;
     _location.latitude = 0;
     _location.longitude = 0;
     _location.bearing = 0;
     _location.error = 0;
     _location.speed = 0;
     _location.area = string.Empty;
     _location.building = string.Empty;
     _location.country = string.Empty;
     _location.datum = string.Empty;
     _location.description = string.Empty;
     _location.floor = string.Empty;
     _location.locality = string.Empty;
     _location.postalcode = string.Empty;
     _location.region = string.Empty;
     _location.room = string.Empty;
     _location.street = string.Empty;
     _location.text = string.Empty;
     _location.timestamp = new DateTime();
     _location.uri = string.Empty;
     _tune = new Tune();
     _tune.artist = string.Empty;
     _tune.length = 0;
     _tune.rating = 1;
     _tune.source = string.Empty;
     _tune.title = string.Empty;
     _tune.track = 0;
     _tune.uri = string.Empty;
 }
Ejemplo n.º 2
0
 /// <summary>
 /// Constructeur
 /// </summary>
 public Presence()
 {
     _status = new Status();
     _status.type = Enums.StatusType.Normal;
     _status.message = string.Empty;
     _mood = new Mood();
     _mood.type = Enums.MoodType.none;
     _mood.text = string.Empty;
     _location = new Location();
     _location.altitude = 0;
     _location.latitude = 0;
     _location.longitude = 0;
     _location.bearing = 0;
     _location.error = 0;
     _location.speed = 0;
     _location.area = string.Empty;
     _location.building = string.Empty;
     _location.country = string.Empty;
     _location.datum = string.Empty;
     _location.description = string.Empty;
     _location.floor = string.Empty;
     _location.locality = string.Empty;
     _location.postalcode = string.Empty;
     _location.region = string.Empty;
     _location.room = string.Empty;
     _location.street = string.Empty;
     _location.text = string.Empty;
     _location.timestamp = new DateTime();
     _location.uri = string.Empty;
     _tune = new Tune();
     _tune.artist = string.Empty;
     _tune.length = 0;
     _tune.rating = 1;
     _tune.source = string.Empty;
     _tune.title = string.Empty;
     _tune.track = 0;
     _tune.uri = string.Empty;
     _autoIdleStatus = new Status();
     _autoIdleStatus.type = Enums.StatusType.Away;
     _autoIdleStatus.message = "(Auto Idle)";
     autoIdleTimer.Elapsed += new System.Timers.ElapsedEventHandler(autoIdleTimerElapsed);
     autoIdleTimer.Enabled = true;
 }
Ejemplo n.º 3
0
        /// <summary>
        /// Change la Presence d'une resource
        /// </summary>
        /// <param name="presence">Contenu de la pr�sence</param>
        private void SetPresence(agsXMPP.protocol.client.Presence presence)
        {
            if (presence.From != null && presence.To.Bare == Jabber.xmpp.MyJID.Bare)
            {
                string bare = presence.From.Bare;
                string resource = (presence.From.Resource != null) ? presence.From.Resource.Trim() : string.Empty;
                if (contacts.ContainsKey(bare))
                {
                    if (resource != string.Empty)
                    {
                        if (!contacts[bare].ContainsKey(resource))
                        {
                            contacts[bare].Add(resource, new Contact(presence.From, string.Empty, null));
                            OnResourceAdded(contacts[bare][resource]);
                        }
                        contacts[bare][resource].priority = presence.Priority;
                        Status st = new Status();
                        st.message = (presence.Status != null) ? presence.Status.Trim() : string.Empty;
                        st.type = Enumerations.PresenceTypeConverter(presence.Type);
                        if (st.type == Enumerations.StatusType.Normal)
                        {
                            if (contacts[bare][resource].status.type != Enumerations.StatusType.Normal)
                            {
                                if (initialUserPEP.ContainsKey(bare))
                                {
                                    if (initialUserPEP[bare].activity.text != null)
                                    {
                                        contacts[bare][resource].activity = initialUserPEP[bare].activity;
                                        OnActivityUpdated(contacts[bare][resource], contacts[bare][resource].activity);
                                    }
                                    if (initialUserPEP[bare].mood.text != null)
                                    {
                                        contacts[bare][resource].mood = initialUserPEP[bare].mood;
                                        OnMoodUpdated(contacts[bare][resource], contacts[bare][resource].mood);
                                    }
                                    if (initialUserPEP[bare].location.text != null)
                                    {
                                        contacts[bare][resource].location = initialUserPEP[bare].location;
                                        OnLocationUpdated(contacts[bare][resource], contacts[bare][resource].location);
                                    }
                                    if (initialUserPEP[bare].tune.title != null)
                                    {
                                        contacts[bare][resource].tune = initialUserPEP[bare].tune;
                                        OnTuneUpdated(contacts[bare][resource], contacts[bare][resource].tune);
                                    }
                                    initialUserPEP.Remove(bare);
                                }
                            }
                            st.type = Enumerations.StatusTypeConverter(presence.Show);
                        }
                        if (st.type == Enumerations.StatusType.Unvailable)
                        {
                            if (contacts[bare][resource].status.type != Enumerations.StatusType.Unvailable)
                            {

                                if (initialUserPEP.ContainsKey(bare))
                                {
                                    initialUserPEP.Remove(bare);
                                }
                                UserPEP up = new UserPEP();
                                up.tune = contacts[bare][resource].tune;
                                up.activity = contacts[bare][resource].activity;
                                up.mood = contacts[bare][resource].mood;
                                up.location = contacts[bare][resource].location;
                                initialUserPEP.Add(bare, up);
                            }
                        }
                        contacts[bare][resource].status = st;
                        if (presence.XDelay != null)
                        {
                            contacts[bare][resource].timeInterval = (DateTime.Now - presence.XDelay.Stamp);
                        }
                        if (presence.Nickname != null)
                        {
                            contacts[bare][resource].identity.nickname = presence.Nickname.ToString().Trim();
                        }
                        contacts[bare][resource].lastUpdated = DateTime.Now;
                        OnPresenceUpdated(contacts[bare][resource]);
                    }
                    privacyListUpdated(Jabber._privacy);
                }
            }
        }
Ejemplo n.º 4
0
 /// <summary>
 /// Se produit � chaque fois que l'inactivit� est trop longue
 /// </summary>
 /// <param name="sender">Objet parent</param>
 /// <param name="e">Arguments du timer</param>
 private void autoIdleTimerElapsed(object sender, System.Timers.ElapsedEventArgs e)
 {
     if (autoIdle)
     {
         int idleMinutes = ((Environment.TickCount - getLastActivityTicks()) / 1000) / 60;
         if (idleMinutes >= autoIdleMinutes && !_autoIdleState)
         {
             _autoIdleState = true;
             _autoIdleLastStatus = status;
             status = autoIdleStatus;
             applyStatus();
         }
         else if (idleMinutes < autoIdleMinutes && _autoIdleState)
         {
             _autoIdleState = false;
             status = _autoIdleLastStatus;
             applyStatus();
         }
     }
 }