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 const QString MAEMO5_MANAGER_NAME = "maemo5";
24 QStringList availableManagers = QContactManager::availableManagers();
26 if (availableManagers.contains(MAEMO5_MANAGER_NAME)) {
27 QMap<QString, QString> params;
28 QString managerUri = QContactManager::buildUri(MAEMO5_MANAGER_NAME, params);
29 m_manager = QContactManager::fromUri(managerUri);
33 QString ContactManagerPrivate::parseFacebookId(const QString &accountUri) const
35 qDebug() << __PRETTY_FUNCTION__;
37 const QString FACEBOOK_CHAT_URL = "@chat.facebook.com";
38 int facebookChatUrlIndex = accountUri.indexOf(FACEBOOK_CHAT_URL);
41 if (facebookChatUrlIndex != -1) {
42 facebookId = accountUri.left(facebookChatUrlIndex);
43 facebookId.remove("-");
49 QString ContactManagerPrivate::contactGuid(const QString &facebookId) const
51 qDebug() << __PRETTY_FUNCTION__;
54 qCritical() << "Manager is uninitialized";
58 return m_contactGuids.value(facebookId);
61 void ContactManagerPrivate::requestContactGuids()
63 qDebug() << __PRETTY_FUNCTION__;
66 qCritical() << "Manager is uninitialized";
70 QHash<QString, QString> contactGuids;
72 foreach (QContact contact, m_manager->contacts()) {
73 QContactOnlineAccount account = contact.detail(QContactOnlineAccount::DefinitionName);
74 QString facebookId = parseFacebookId(account.accountUri());
75 QContactGuid contactGuid = contact.detail(QContactGuid::DefinitionName);
77 if (!facebookId.isEmpty())
78 contactGuids.insert(facebookId, contactGuid.guid());
81 m_contactGuids = contactGuids;