diff options
Diffstat (limited to 'Swift/Controllers/ContactsFromXMPPRoster.cpp')
-rw-r--r-- | Swift/Controllers/ContactsFromXMPPRoster.cpp | 28 |
1 files changed, 16 insertions, 12 deletions
diff --git a/Swift/Controllers/ContactsFromXMPPRoster.cpp b/Swift/Controllers/ContactsFromXMPPRoster.cpp index 15a7767..1d1ccd4 100644 --- a/Swift/Controllers/ContactsFromXMPPRoster.cpp +++ b/Swift/Controllers/ContactsFromXMPPRoster.cpp @@ -4,9 +4,13 @@ * See Documentation/Licenses/BSD-simplified.txt for more information. */ -#include <Swift/Controllers/ContactsFromXMPPRoster.h> +/* + * Copyright (c) 2014-2016 Isode Limited. + * All rights reserved. + * See the COPYING file for more information. + */ -#include <Swiften/Base/foreach.h> +#include <Swift/Controllers/ContactsFromXMPPRoster.h> #include <Swiften/Avatars/AvatarManager.h> #include <Swiften/Presence/PresenceOracle.h> @@ -21,16 +25,16 @@ ContactsFromXMPPRoster::ContactsFromXMPPRoster(XMPPRoster* roster, AvatarManager ContactsFromXMPPRoster::~ContactsFromXMPPRoster() { } -std::vector<Contact> ContactsFromXMPPRoster::getContacts() { - std::vector<Contact> results; - std::vector<XMPPRosterItem> rosterItems = roster_->getItems(); - foreach(const XMPPRosterItem& rosterItem, rosterItems) { - Contact contact(rosterItem.getName().empty() ? rosterItem.getJID().toString() : rosterItem.getName(), rosterItem.getJID(), StatusShow::None,""); - contact.statusType = presenceOracle_->getHighestPriorityPresence(contact.jid) ? presenceOracle_->getHighestPriorityPresence(contact.jid)->getShow() : StatusShow::None; - contact.avatarPath = avatarManager_->getAvatarPath(contact.jid); - results.push_back(contact); - } - return results; +std::vector<Contact::ref> ContactsFromXMPPRoster::getContacts(bool /*withMUCNicks*/) { + std::vector<Contact::ref> results; + std::vector<XMPPRosterItem> rosterItems = roster_->getItems(); + for (const auto& rosterItem : rosterItems) { + Contact::ref contact = std::make_shared<Contact>(rosterItem.getName().empty() ? rosterItem.getJID().toString() : rosterItem.getName(), rosterItem.getJID(), StatusShow::None,""); + contact->statusType = presenceOracle_->getAccountPresence(contact->jid) ? presenceOracle_->getAccountPresence(contact->jid)->getShow() : StatusShow::None; + contact->avatarPath = avatarManager_->getAvatarPath(contact->jid); + results.push_back(contact); + } + return results; } } |