diff options
| author | Javier <dev.git@javispedro.com> | 2014-11-30 23:47:38 +0100 |
|---|---|---|
| committer | Javier <dev.git@javispedro.com> | 2014-11-30 23:47:38 +0100 |
| commit | cf405034b49e5e8ba7a8d22522878c8834b8d4ae (patch) | |
| tree | 097205aaf1670be91444cc75226ec153af2817e1 /daemon/jskitobjects.cpp | |
| parent | 6456b840eb660fdafe21d376e07e0b67a24cd0b4 (diff) | |
stub all functions of Pebble JS object
Diffstat (limited to 'daemon/jskitobjects.cpp')
| -rw-r--r-- | daemon/jskitobjects.cpp | 58 |
1 files changed, 55 insertions, 3 deletions
diff --git a/daemon/jskitobjects.cpp b/daemon/jskitobjects.cpp index fc9506d..f40138a 100644 --- a/daemon/jskitobjects.cpp +++ b/daemon/jskitobjects.cpp @@ -1,15 +1,67 @@ #include <QStandardPaths> +#include <QDesktopServices> +#include <QUrl> #include <QDir> #include "jskitobjects.h" JSKitPebble::JSKitPebble(JSKitManager *mgr) - : QObject(mgr) + : QObject(mgr), _mgr(mgr) { } -void JSKitPebble::addEventListener(const QString &value, QJSValue callback) +void JSKitPebble::addEventListener(const QString &type, QJSValue function) { - _callbacks[value].append(callback); + _callbacks[type].append(function); +} + +void JSKitPebble::removeEventListener(const QString &type, QJSValue function) +{ + if (!_callbacks.contains(type)) return; + QList<QJSValue> &callbacks = _callbacks[type]; + + for (QList<QJSValue>::iterator it = callbacks.begin(); it != callbacks.end(); ) { + if (it->strictlyEquals(function)) { + it = callbacks.erase(it); + } else { + ++it; + } + } + + if (callbacks.empty()) { + _callbacks.remove(type); + } +} + +void JSKitPebble::sendAppMessage(QJSValue message, QJSValue callbackForAck, QJSValue callbackForNack) +{ + // TODO contact _mgr->appmsg->... + logger()->debug() << "sendAppMessage" << message.toString(); +} + +void JSKitPebble::showSimpleNotificationOnPebble(const QString &title, const QString &body) +{ + logger()->debug() << "showSimpleNotificationOnPebble" << title << body; +} + +void JSKitPebble::openUrl(const QUrl &url) +{ + if (!QDesktopServices::openUrl(url)) { + logger()->warn() << "Failed to open URL:" << url; + } +} + +void JSKitPebble::invokeCallbacks(const QString &type, const QJSValueList &args) +{ + if (!_callbacks.contains(type)) return; + QList<QJSValue> &callbacks = _callbacks[type]; + + for (QList<QJSValue>::iterator it = callbacks.begin(); it != callbacks.end(); ++it) { + QJSValue result = it->call(args); + if (result.isError()) { + logger()->warn() << "error while invoking callback" << type << it->toString() << ":" + << result.toString(); + } + } } JSKitLocalStorage::JSKitLocalStorage(const QUuid &uuid, JSKitManager *mgr) |
