2 #include <QContactGuid>
3 #include <QContactManager>
4 #include <QContactOnlineAccount>
10 #include "contactmanager.h"
12 #include "contactmanagerprivate.h"
16 ContactManagerPrivate::ContactManagerPrivate(QObject *parent)
20 qDebug() << __PRETTY_FUNCTION__;
22 m_parent = static_cast<ContactManager *>(parent);
24 const QString MAEMO5_MANAGER_NAME = "maemo5";
26 QStringList availableManagers = QContactManager::availableManagers();
28 if (availableManagers.contains(MAEMO5_MANAGER_NAME)) {
29 QMap<QString, QString> params;
30 QString managerUri = QContactManager::buildUri(MAEMO5_MANAGER_NAME, params);
31 m_manager = QContactManager::fromUri(managerUri);
35 QString ContactManagerPrivate::parseFacebookId(const QString &accountUri) const
37 qDebug() << __PRETTY_FUNCTION__;
39 const QString FACEBOOK_CHAT_URL = "@chat.facebook.com";
40 int facebookChatUrlIndex = accountUri.indexOf(FACEBOOK_CHAT_URL);
43 if (facebookChatUrlIndex != -1) {
44 facebookId = accountUri.left(facebookChatUrlIndex);
45 facebookId.remove("-");
51 QString ContactManagerPrivate::contactGuid(const QString &facebookId) const
53 qDebug() << __PRETTY_FUNCTION__;
56 qWarning() << "Manager is uninitialized";
60 return m_contactGuids.value(facebookId);
63 void ContactManagerPrivate::requestContactGuids()
65 qDebug() << __PRETTY_FUNCTION__;
68 qWarning() << "Manager is uninitialized";
72 QHash<QString, QString> contactGuids;
74 foreach (QContact contact, m_manager->contacts()) {
75 QContactOnlineAccount account = contact.detail(QContactOnlineAccount::DefinitionName);
76 QString facebookId = parseFacebookId(account.accountUri());
77 QContactGuid contactGuid = contact.detail(QContactGuid::DefinitionName);
79 if (!facebookId.isEmpty())
80 contactGuids.insert(facebookId, contactGuid.guid());
83 m_contactGuids = contactGuids;