Cleaned debug prints
[situare] / src / engine / contactmanagerprivate.cpp
1 #include <QContact>
2 #include <QContactGuid>
3 #include <QContactManager>
4 #include <QContactOnlineAccount>
5 #include <QDebug>
6 #include <QHash>
7 #include <QList>
8 #include <QStringList>
9
10 #include "contactmanager.h"
11
12 #include "contactmanagerprivate.h"
13
14 QTM_USE_NAMESPACE
15
16 ContactManagerPrivate::ContactManagerPrivate(QObject *parent)
17     : QObject(parent),
18       m_manager(0)
19 {
20     qDebug() << __PRETTY_FUNCTION__;
21
22     const QString MAEMO5_MANAGER_NAME = "maemo5";
23
24     QStringList availableManagers = QContactManager::availableManagers();
25
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);
30     }
31 }
32
33 QString ContactManagerPrivate::parseFacebookId(const QString &accountUri) const
34 {
35     qDebug() << __PRETTY_FUNCTION__;
36
37     const QString FACEBOOK_CHAT_URL = "@chat.facebook.com";
38     int facebookChatUrlIndex = accountUri.indexOf(FACEBOOK_CHAT_URL);
39     QString facebookId;
40
41     if (facebookChatUrlIndex != -1) {
42         facebookId = accountUri.left(facebookChatUrlIndex);
43         facebookId.remove("-");
44     }
45
46     return facebookId;
47 }
48
49 QString ContactManagerPrivate::contactGuid(const QString &facebookId) const
50 {
51     qDebug() << __PRETTY_FUNCTION__;
52
53     if (!m_manager) {
54         qCritical() << "Manager is uninitialized";
55         return QString();
56     }
57
58     return m_contactGuids.value(facebookId);
59 }
60
61 void ContactManagerPrivate::requestContactGuids()
62 {
63     qDebug() << __PRETTY_FUNCTION__;
64
65     if (!m_manager) {
66         qCritical() << "Manager is uninitialized";
67         return;
68     }
69
70     QHash<QString, QString> contactGuids;
71
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);
76
77         if (!facebookId.isEmpty())
78             contactGuids.insert(facebookId, contactGuid.guid());
79     }
80
81     m_contactGuids = contactGuids;
82 }