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; }
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); } } }
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); } } }
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); } } }
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); } } }
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); } } }
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; }