blob: b9aa01bfda975c7faa77e825f885d01d8626ed9d (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
|
#ifndef MANAGER_H
#define MANAGER_H
#include "watchconnector.h"
#include "dbusconnector.h"
#include "voicecallmanager.h"
#include <QObject>
#include <QBluetoothLocalDevice>
#include <QtContacts/QContactManager>
#include <QtContacts/QContactDetailFilter>
#include <CommHistory/GroupModel>
#include <MNotification>
using namespace QtContacts;
using namespace CommHistory;
class Manager : public QObject
{
Q_OBJECT
friend class PebbledProxy;
QBluetoothLocalDevice btDevice;
watch::WatchConnector *watch;
DBusConnector *dbus;
VoiceCallManager *voice;
MNotification notification;
QContactManager *contacts;
QContactDetailFilter numberFilter;
GroupManager *conversations;
public:
explicit Manager(watch::WatchConnector *watch, DBusConnector *dbus, VoiceCallManager *voice);
Q_INVOKABLE QString findPersonByNumber(QString number);
Q_INVOKABLE void processUnreadMessages(GroupObject *group);
signals:
public slots:
void hangupAll();
protected slots:
void onPebbleChanged();
void onConnectedChanged();
void onActiveVoiceCallChanged();
void onVoiceError(const QString &message);
void onActiveVoiceCallStatusChanged();
void onConversationGroupAdded(GroupObject *group);
void onUnreadMessagesChanged();
};
class PebbledProxy : public QObject
{
Q_OBJECT
Q_PROPERTY(QVariantMap pebble READ pebble)
Q_PROPERTY(QString name READ pebbleName)
Q_PROPERTY(QString address READ pebbleAddress)
Q_PROPERTY(bool connected READ pebbleConnected)
QVariantMap pebble() { return static_cast<Manager*>(parent())->dbus->pebble(); }
QString pebbleName() { return static_cast<Manager*>(parent())->dbus->pebble()["Name"].toString(); }
QString pebbleAddress() { return static_cast<Manager*>(parent())->dbus->pebble()["Address"].toString(); }
bool pebbleConnected() { return static_cast<Manager*>(parent())->watch->isConnected(); }
public:
explicit PebbledProxy(QObject *parent) : QObject(parent) {}
};
#endif // MANAGER_H
|