summaryrefslogtreecommitdiff
path: root/daemon
diff options
context:
space:
mode:
authorPhilipp Andreas <github@smurfy.de>2014-07-22 23:27:21 +0200
committerPhilipp Andreas <github@smurfy.de>2014-07-22 23:27:21 +0200
commit9e92e7c4cfd6236912a2665df9a6ed89e8fcdffc (patch)
tree38ebe20a01e00246e10ba9fffc7ace56aaa56032 /daemon
parent9f8db04d6059e0b220e36a064d694a1b0649f5f0 (diff)
Added support to sync date and time from phone
Diffstat (limited to 'daemon')
-rw-r--r--daemon/dbusadaptor.cpp7
-rw-r--r--daemon/dbusadaptor.h2
-rw-r--r--daemon/manager.h1
-rw-r--r--daemon/org.pebbled.xml1
-rw-r--r--daemon/watchconnector.cpp17
-rw-r--r--daemon/watchconnector.h1
6 files changed, 29 insertions, 0 deletions
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
" <method name=\"ping\">\n"
" <arg direction=\"in\" type=\"i\" name=\"val\"/>\n"
" </method>\n"
+" <method name=\"time\"/>\n"
" <method name=\"disconnect\"/>\n"
" <method name=\"reconnect\"/>\n"
" </interface>\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<Manager*>(parent())->watch->ping((unsigned int)val); }
+ void time() { static_cast<Manager*>(parent())->watch->time(); }
void disconnect() { static_cast<Manager*>(parent())->watch->disconnect(); }
void reconnect() { static_cast<Manager*>(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 @@
<method name="ping">
<arg name="val" type="i" direction="in"/>
</method>
+ <method name="time"/>
<method name="disconnect"/>
<method name="reconnect"/>
</interface>
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);