From 9e92e7c4cfd6236912a2665df9a6ed89e8fcdffc Mon Sep 17 00:00:00 2001 From: Philipp Andreas Date: Tue, 22 Jul 2014 23:27:21 +0200 Subject: Added support to sync date and time from phone --- daemon/dbusadaptor.cpp | 7 +++++++ daemon/dbusadaptor.h | 2 ++ daemon/manager.h | 1 + daemon/org.pebbled.xml | 1 + daemon/watchconnector.cpp | 17 +++++++++++++++++ daemon/watchconnector.h | 1 + 6 files changed, 29 insertions(+) (limited to 'daemon') diff --git a/daemon/dbusadaptor.cpp b/daemon/dbusadaptor.cpp index 6125ee7..3332551 100644 --- a/daemon/dbusadaptor.cpp +++ b/daemon/dbusadaptor.cpp @@ -69,6 +69,13 @@ void PebbledAdaptor::ping(int val) QMetaObject::invokeMethod(parent(), "ping", Q_ARG(int, val)); } +void PebbledAdaptor::time() +{ + // handle method call org.pebbled.time + QMetaObject::invokeMethod(parent(), "time"); +} + + void PebbledAdaptor::reconnect() { // handle method call org.pebbled.reconnect diff --git a/daemon/dbusadaptor.h b/daemon/dbusadaptor.h index 7613fba..715a41b 100644 --- a/daemon/dbusadaptor.h +++ b/daemon/dbusadaptor.h @@ -43,6 +43,7 @@ class PebbledAdaptor: public QDBusAbstractAdaptor " \n" " \n" " \n" +" \n" " \n" " \n" " \n" @@ -67,6 +68,7 @@ public: // PROPERTIES public Q_SLOTS: // METHODS void disconnect(); void ping(int val); + void time(); void reconnect(); Q_SIGNALS: // SIGNALS void connectedChanged(); diff --git a/daemon/manager.h b/daemon/manager.h index 89b8e2b..26a0fd8 100644 --- a/daemon/manager.h +++ b/daemon/manager.h @@ -102,6 +102,7 @@ public: public slots: void ping(int val) { static_cast(parent())->watch->ping((unsigned int)val); } + void time() { static_cast(parent())->watch->time(); } void disconnect() { static_cast(parent())->watch->disconnect(); } void reconnect() { static_cast(parent())->watch->reconnect(); } diff --git a/daemon/org.pebbled.xml b/daemon/org.pebbled.xml index 0a958c8..e255782 100644 --- a/daemon/org.pebbled.xml +++ b/daemon/org.pebbled.xml @@ -13,6 +13,7 @@ + diff --git a/daemon/watchconnector.cpp b/daemon/watchconnector.cpp index 1bdec8d..70b8e6f 100644 --- a/daemon/watchconnector.cpp +++ b/daemon/watchconnector.cpp @@ -242,6 +242,23 @@ void WatchConnector::ping(uint val) sendMessage(watchPING, res); } +void WatchConnector::time() +{ + QByteArray res; + QDateTime UTC(QDateTime::currentDateTimeUtc()); + QDateTime local(UTC.toLocalTime()); + local.setTimeSpec(Qt::UTC); + int offset = UTC.secsTo(local); + uint val = (local.toMSecsSinceEpoch() + offset) / 1000; + + res.append(0x02); //SET_TIME_REQ + res.append((char)((val >> 24) & 0xff)); + res.append((char)((val >> 16) & 0xff)); + res.append((char)((val >> 8) & 0xff)); + res.append((char)(val & 0xff)); + sendMessage(watchTIME, res); +} + QString WatchConnector::timeStamp() { return QString::number(QDateTime::currentMSecsSinceEpoch()); diff --git a/daemon/watchconnector.h b/daemon/watchconnector.h index 936deff..cdaf059 100644 --- a/daemon/watchconnector.h +++ b/daemon/watchconnector.h @@ -145,6 +145,7 @@ public slots: void sendData(const QByteArray &data); void sendMessage(uint endpoint, QByteArray data); void ping(uint val); + void time(); void sendNotification(uint lead, QString sender, QString data, QString subject); void sendSMSNotification(QString sender, QString data); void sendEmailNotification(QString sender, QString data, QString subject); -- cgit v1.2.3