From b3f9fcecdcf5f73ac902d76b95739b76e6bfcba1 Mon Sep 17 00:00:00 2001 From: Andrew Branson Date: Wed, 10 Feb 2016 00:15:20 +0100 Subject: V3 firmware support improvements Proper timeline notifications for the v3 firmware. Added telegram, whatapp and hangouts notification types. Removed mitakuuluu. --- daemon/manager.h | 317 ++++++++++++++++++++++++++++--------------------------- 1 file changed, 160 insertions(+), 157 deletions(-) (limited to 'daemon/manager.h') diff --git a/daemon/manager.h b/daemon/manager.h index e3143b1..0c6032b 100644 --- a/daemon/manager.h +++ b/daemon/manager.h @@ -1,157 +1,160 @@ -#ifndef MANAGER_H -#define MANAGER_H - -#include "watchconnector.h" -#include "uploadmanager.h" -#include "voicecallmanager.h" -#include "notificationmanager.h" -#include "musicmanager.h" -#include "datalogmanager.h" -#include "appmsgmanager.h" -#include "jskitmanager.h" -#include "appmanager.h" -#include "bankmanager.h" -#include "settings.h" - -#include -#include -#include -#include -#include -#include - -#include - -using namespace QtContacts; - -class PebbledProxy; - -class Manager : public QObject, protected QDBusContext -{ - Q_OBJECT - QLoggingCategory l; - - friend class PebbledProxy; - - Settings *settings; - - PebbledProxy *proxy; - - WatchConnector *watch; - UploadManager *upload; - AppManager *apps; - BankManager *bank; - VoiceCallManager *voice; - NotificationManager *notifications; - MusicManager *music; - DataLogManager *datalog; - AppMsgManager *appmsg; - JSKitManager *js; - - MNotification notification; - - QContactManager *contacts; - QContactDetailFilter numberFilter; - - QUuid currentAppUuid; - - QScopedPointer transliterator; - -public: - explicit Manager(Settings *settings, QObject *parent = 0); - ~Manager(); - - QString findPersonByNumber(QString number); - - bool uploadFirmware(bool recovery, const QString &file); - -protected: - void transliterateMessage(const QString &text); - -public slots: - void applyProfile(); - void ping(uint val); - -private slots: - void onSettingChanged(const QString &key); - void onSettingsChanged(); - void onConnectedChanged(); - void onActiveVoiceCallChanged(); - void onVoiceError(const QString &message); - void onActiveVoiceCallStatusChanged(); - void onNotifyError(const QString &message); - void onSmsNotify(const QString &sender, const QString &data); - void onTwitterNotify(const QString &sender, const QString &data); - void onFacebookNotify(const QString &sender, const QString &data); - void onEmailNotify(const QString &sender, const QString &data,const QString &subject); - - void onAppNotification(const QUuid &uuid, const QString &title, const QString &body); - void onAppOpened(const QUuid &uuid); - void onAppClosed(const QUuid &uuid); -}; - -/** This class is what's actually exported over D-Bus, - * so the names of the slots and properties must match with org.pebbled.Watch D-Bus interface. - * Case sensitive. Otherwise, _runtime_ failures will occur. */ -// Some of the methods are marked inline so that they may be inlined inside qt_metacall -class PebbledProxy : public QObject, protected QDBusContext -{ - Q_OBJECT - QLoggingCategory l; - - Q_PROPERTY(QString Name READ Name NOTIFY NameChanged) - Q_PROPERTY(QString Address READ Address NOTIFY AddressChanged) - Q_PROPERTY(QVariantMap Info READ Info NOTIFY InfoChanged) - Q_PROPERTY(bool Connected READ Connected NOTIFY ConnectedChanged) - Q_PROPERTY(QString AppUuid READ AppUuid NOTIFY AppUuidChanged) - Q_PROPERTY(QStringList AppSlots READ AppSlots NOTIFY AppSlotsChanged) - Q_PROPERTY(QVariantList AllApps READ AllApps NOTIFY AllAppsChanged) - - inline Manager* manager() const { return static_cast(parent()); } - -public: - inline explicit PebbledProxy(QObject *parent) - : QObject(parent), l(metaObject()->className()) {} - - inline QString Name() const { qCDebug(l) << manager()->watch->name(); return manager()->watch->name(); } - inline QString Address() const { qCDebug(l) << manager()->watch->address().toString(); return manager()->watch->address().toString(); } - inline QVariantMap Info() const { qCDebug(l) << manager()->watch->versions().toMap(); return manager()->watch->versions().toMap(); } - inline bool Connected() const { qCDebug(l) << manager()->watch->isConnected(); return manager()->watch->isConnected(); } - inline QString AppUuid() const { return manager()->currentAppUuid.toString(); } - - QStringList AppSlots() const; - - QVariantList AllApps() const; - -public slots: - inline void Disconnect() { manager()->watch->disconnect(); } - inline void Reconnect() { manager()->watch->connect(); } - inline void Ping(uint val) { manager()->ping(val); } - inline void SyncTime() { manager()->watch->time(); } - - inline void LaunchApp(const QString &uuid) { manager()->appmsg->launchApp(uuid); } - inline void CloseApp(const QString &uuid) { manager()->appmsg->closeApp(uuid); } - - bool SendAppMessage(const QString &uuid, const QVariantMap &data); - QString StartAppConfiguration(const QString &uuid); - void SendAppConfigurationData(const QString &uuid, const QString &data); - - void UnloadApp(int slot); - void UploadApp(const QString &uuid, int slot); - - void NotifyFirmware(bool ok); - void UploadFirmware(bool recovery, const QString &file); - -signals: - void NameChanged(); - void AddressChanged(); - void InfoChanged(); - void ConnectedChanged(); - void AppUuidChanged(); - void AppSlotsChanged(); - void AllAppsChanged(); - void AppOpened(const QString &uuid); - void AppClosed(const QString &uuid); -}; - -#endif // MANAGER_H +#ifndef MANAGER_H +#define MANAGER_H + +#include "watchconnector.h" +#include "uploadmanager.h" +#include "voicecallmanager.h" +#include "notificationmanager.h" +#include "musicmanager.h" +#include "datalogmanager.h" +#include "appmsgmanager.h" +#include "jskitmanager.h" +#include "appmanager.h" +#include "bankmanager.h" +#include "settings.h" + +#include +#include +#include +#include +#include +#include + +#include + +using namespace QtContacts; + +class PebbledProxy; + +class Manager : public QObject, protected QDBusContext +{ + Q_OBJECT + QLoggingCategory l; + + friend class PebbledProxy; + + Settings *settings; + + PebbledProxy *proxy; + + WatchConnector *watch; + UploadManager *upload; + AppManager *apps; + BankManager *bank; + VoiceCallManager *voice; + NotificationManager *notifications; + MusicManager *music; + DataLogManager *datalog; + AppMsgManager *appmsg; + JSKitManager *js; + + MNotification notification; + + QContactManager *contacts; + QContactDetailFilter numberFilter; + + QUuid currentAppUuid; + + QScopedPointer transliterator; + +public: + explicit Manager(Settings *settings, QObject *parent = 0); + ~Manager(); + + QString findPersonByNumber(QString number); + + bool uploadFirmware(bool recovery, const QString &file); + +protected: + void transliterateMessage(const QString &text); + +public slots: + void applyProfile(); + void ping(uint val); + +private slots: + void onSettingChanged(const QString &key); + void onSettingsChanged(); + void onConnectedChanged(); + void onActiveVoiceCallChanged(); + void onVoiceError(const QString &message); + void onActiveVoiceCallStatusChanged(); + void onNotifyError(const QString &message); + void onSmsNotify(const QString &sender, const QString &data); + void onTwitterNotify(const QString &sender, const QString &data); + void onFacebookNotify(const QString &sender, const QString &data); + void onTelegramNotify(const QString &sender, const QString &data); + void onHangoutsNotify(const QString &sender, const QString &data); + void onWhatsappNotify(const QString &sender, const QString &data); + void onEmailNotify(const QString &sender, const QString &data,const QString &subject); + + void onAppNotification(const QUuid &uuid, const QString &title, const QString &body); + void onAppOpened(const QUuid &uuid); + void onAppClosed(const QUuid &uuid); +}; + +/** This class is what's actually exported over D-Bus, + * so the names of the slots and properties must match with org.pebbled.Watch D-Bus interface. + * Case sensitive. Otherwise, _runtime_ failures will occur. */ +// Some of the methods are marked inline so that they may be inlined inside qt_metacall +class PebbledProxy : public QObject, protected QDBusContext +{ + Q_OBJECT + QLoggingCategory l; + + Q_PROPERTY(QString Name READ Name NOTIFY NameChanged) + Q_PROPERTY(QString Address READ Address NOTIFY AddressChanged) + Q_PROPERTY(QVariantMap Info READ Info NOTIFY InfoChanged) + Q_PROPERTY(bool Connected READ Connected NOTIFY ConnectedChanged) + Q_PROPERTY(QString AppUuid READ AppUuid NOTIFY AppUuidChanged) + Q_PROPERTY(QStringList AppSlots READ AppSlots NOTIFY AppSlotsChanged) + Q_PROPERTY(QVariantList AllApps READ AllApps NOTIFY AllAppsChanged) + + inline Manager* manager() const { return static_cast(parent()); } + +public: + inline explicit PebbledProxy(QObject *parent) + : QObject(parent), l(metaObject()->className()) {} + + inline QString Name() const { qCDebug(l) << manager()->watch->name(); return manager()->watch->name(); } + inline QString Address() const { qCDebug(l) << manager()->watch->address().toString(); return manager()->watch->address().toString(); } + inline QVariantMap Info() const { qCDebug(l) << manager()->watch->versions().toMap(); return manager()->watch->versions().toMap(); } + inline bool Connected() const { qCDebug(l) << manager()->watch->isConnected(); return manager()->watch->isConnected(); } + inline QString AppUuid() const { return manager()->currentAppUuid.toString(); } + + QStringList AppSlots() const; + + QVariantList AllApps() const; + +public slots: + inline void Disconnect() { manager()->watch->disconnect(); } + inline void Reconnect() { manager()->watch->connect(); } + inline void Ping(uint val) { manager()->ping(val); } + inline void SyncTime() { manager()->watch->time(); } + + inline void LaunchApp(const QString &uuid) { manager()->appmsg->launchApp(uuid); } + inline void CloseApp(const QString &uuid) { manager()->appmsg->closeApp(uuid); } + + bool SendAppMessage(const QString &uuid, const QVariantMap &data); + QString StartAppConfiguration(const QString &uuid); + void SendAppConfigurationData(const QString &uuid, const QString &data); + + void UnloadApp(int slot); + void UploadApp(const QString &uuid, int slot); + + void NotifyFirmware(bool ok); + void UploadFirmware(bool recovery, const QString &file); + +signals: + void NameChanged(); + void AddressChanged(); + void InfoChanged(); + void ConnectedChanged(); + void AppUuidChanged(); + void AppSlotsChanged(); + void AllAppsChanged(); + void AppOpened(const QString &uuid); + void AppClosed(const QString &uuid); +}; + +#endif // MANAGER_H -- cgit v1.2.3