blob: e967dae931114fbea3cee3424827242ca1680115 (
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
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
|
#ifndef MANAGER_H
#define MANAGER_H
#include "watchconnector.h"
#include "dbusconnector.h"
#include "voicecallmanager.h"
#include "watchcommands.h"
#include <QObject>
#include <QBluetoothLocalDevice>
#include <QDBusContext>
#include <QtContacts/QContactManager>
#include <QtContacts/QContactDetailFilter>
#include <CommHistory/GroupModel>
#include <MNotification>
#include "Logger"
using namespace QtContacts;
using namespace CommHistory;
class Manager :
public QObject,
protected QDBusContext
{
Q_OBJECT
LOG4QT_DECLARE_QCLASS_LOGGER
friend class PebbledProxy;
Q_PROPERTY(QString mpris READ mpris)
Q_PROPERTY(QVariantMap mprisMetadata READ getMprisMetadata WRITE setMprisMetadata NOTIFY mprisMetadataChanged)
QBluetoothLocalDevice btDevice;
watch::WatchConnector *watch;
DBusConnector *dbus;
VoiceCallManager *voice;
WatchCommands *commands;
MNotification notification;
QContactManager *contacts;
QContactDetailFilter numberFilter;
GroupManager *conversations;
QString lastSeenMpris;
public:
explicit Manager(watch::WatchConnector *watch, DBusConnector *dbus, VoiceCallManager *voice);
Q_INVOKABLE QString findPersonByNumber(QString number);
Q_INVOKABLE void processUnreadMessages(GroupObject *group);
Q_INVOKABLE QString mpris();
QVariantMap mprisMetadata;
QVariantMap getMprisMetadata() { return mprisMetadata; }
signals:
void mprisMetadataChanged(QVariantMap);
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();
void onMprisPropertiesChanged(QString,QMap<QString,QVariant>,QStringList);
void setMprisMetadata(QDBusArgument metadata);
void setMprisMetadata(QVariantMap metadata);
};
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) {}
public slots:
void ping(int val) { static_cast<Manager*>(parent())->watch->ping((unsigned int)val); }
void disconnect() { static_cast<Manager*>(parent())->watch->disconnect(); }
void reconnect() { static_cast<Manager*>(parent())->watch->reconnect(); }
};
#endif // MANAGER_H
|