コード例 #1
0
        public override IEnumerable <Item> Perform(IEnumerable <Item> items, IEnumerable <Item> modItems)
        {
            string message = "";

            if (modItems.Any())
            {
                message = (modItems.First() as ITextItem).Text;
            }

            foreach (Item item in items)
            {
                if (item is ContactItem)
                {
                    ContactItem contactItem = item as ContactItem;
                    string      contactId   = contactItem["email"];

                    if (!string.IsNullOrEmpty(message))
                    {
                        EmpathyPlugin.OpenConversationWithBuddy(contactId, message);
                    }
                    else
                    {
                        EmpathyPlugin.OpenConversationWithBuddy(contactId);
                    }
                }
            }
            yield break;
        }
コード例 #2
0
        public void ForceUpdateItems()
        {
            if (EmpathyPlugin.IsInstanceRunning())
            {
                contacts.Clear();
                try
                {
                    foreach (Contact contact in EmpathyPlugin.GetAllContacts())
                    {
                        ContactItem contactItem = ContactItem.Create(contact.Alias);
                        contactItem["email"]      = contact.ContactId;
                        contactItem["is-empathy"] = "true";
                        if (contact.AvatarToken != null && contact.AvatarToken != "")
                        {
                            string[] elts = new string[] { Environment.GetFolderPath(Environment.SpecialFolder.Personal), EmpathyPlugin.AVATAR_PATH, contact.Account.cm, contact.Account.proto, contact.AvatarToken };
                            contactItem["photo"] = elts.Aggregate((aggregation, val) => Path.Combine(aggregation, val));
                        }
                        contacts.Add(contactItem);
                    }
                }
                catch (Exception e)
                {
                    Log <EmpathyContactItemSource> .Error("Could not get Empathy contacts: {0}", e.Message);

                    Log <EmpathyContactItemSource> .Error(e.StackTrace);
                }
            }
        }
コード例 #3
0
 public override IEnumerable <Item> ChildrenOfItem(Item item)
 {
     if (EmpathyPlugin.IsTelepathy(item))
     {
         yield return(new EmpathyBrowseAccountItem());
     }
     else if (item is EmpathyBrowseAccountItem)
     {
         foreach (EmpathyAccountItem account in items)
         {
             yield return(account);
         }
     }
 }
コード例 #4
0
 public override IEnumerable <Item> ChildrenOfItem(Item item)
 {
     if (EmpathyPlugin.IsTelepathy(item))
     {
         yield return(new EmpathyBrowseBuddyItem());
     }
     else if (item is EmpathyBrowseBuddyItem)
     {
         foreach (ContactItem contact in contacts)
         {
             yield return(contact);
         }
     }
 }
コード例 #5
0
 public override IEnumerable <Item> ChildrenOfItem(Item item)
 {
     if (EmpathyPlugin.IsTelepathy(item))
     {
         yield return(new EmpathyBrowseStatusItem());
     }
     else if (item is EmpathyBrowseStatusItem)
     {
         foreach (Item status in statuses)
         {
             yield return(status);
         }
     }
 }
コード例 #6
0
        public override void UpdateItems()
        {
            if (EmpathyPlugin.IsInstanceRunning())
            {
                items.Clear();
                try {
                    foreach (Account account in EmpathyPlugin.GetAllAccounts())
                    {
                        items.Add(new EmpathyAccountItem(account));
                    }
                } catch (Exception e) {
                    Log <EmpathyAccountItemSource> .Error("Could not get Empathy accounts: {0}", e.Message);

                    Log <EmpathyAccountItemSource> .Debug(e.StackTrace);
                }
            }
        }
コード例 #7
0
        public override IEnumerable <Item> Perform(IEnumerable <Item> items, IEnumerable <Item> modItems)
        {
            ConnectionPresenceType status;
            string message = "";

            try
            {
                if (items.First() is EmpathySavedStatusItem)
                {
                    status  = (items.First() as EmpathySavedStatusItem).Status;
                    message = (items.First() as EmpathySavedStatusItem).Message;
                    EmpathyPlugin.SetAvailabilityStatus(status, message);
                }
                else if (items.First() is EmpathyStatusItem)
                {
                    status = (items.First() as EmpathyStatusItem).Status;
                    if (modItems.Any())
                    {
                        message = (modItems.First() as ITextItem).Text;
                    }
                    EmpathyPlugin.SetAvailabilityStatus(status, message);
                }
                else if (items.First() is ITextItem)
                {
                    if (modItems.Any())
                    {
                        status = (modItems.First() as EmpathyStatusItem).Status;
                    }
                    else
                    {
                        status = ConnectionPresenceType.Available;
                    }
                    message = (items.First() as ITextItem).Text;
                    EmpathyPlugin.SetAvailabilityStatus(status, message);
                }
            }
            catch (Exception e)
            {
                Log <EmpathySetStatusAction> .Error("Could not set Empathy status: {0}", e.Message);

                Log <EmpathySetStatusAction> .Debug(e.StackTrace);
            }
            yield break;
        }