summaryrefslogtreecommitdiff
path: root/app/pebblestoreview.h
diff options
context:
space:
mode:
Diffstat (limited to 'app/pebblestoreview.h')
-rw-r--r--app/pebblestoreview.h52
1 files changed, 52 insertions, 0 deletions
diff --git a/app/pebblestoreview.h b/app/pebblestoreview.h
new file mode 100644
index 0000000..a19b43d
--- /dev/null
+++ b/app/pebblestoreview.h
@@ -0,0 +1,52 @@
+#ifndef PEBBLESTOREVIEW_H
+#define PEBBLESTOREVIEW_H
+
+#include <private/qquickwebview_p.h>
+#include <private/qwebnavigationrequest_p.h>
+#include <QNetworkReply>
+#include <QNetworkAccessManager>
+#include <QJsonDocument>
+#include <QJsonObject>
+
+class PebbleStoreView : public QQuickWebView
+{
+ Q_OBJECT
+public:
+ PebbleStoreView();
+ Q_PROPERTY(bool loggedin READ loggedin NOTIFY accessTokenChanged)
+ Q_PROPERTY(bool downloadInProgress READ downloadInProgress NOTIFY downloadInProgressChanged)
+ Q_PROPERTY(QString accessToken READ accessToken WRITE setAccessToken NOTIFY accessTokenChanged)
+
+ bool loggedin();
+ bool downloadInProgress();
+ QString accessToken() const;
+ void setAccessToken(const QString &accessToken);
+
+public slots:
+ void gotoWatchFaces();
+ void gotoWatchApps();
+ void logout();
+
+private slots:
+ void onNavigationRequested(QWebNavigationRequest* request);
+ void onNetworkReplyFinished(QNetworkReply* reply);
+
+signals:
+ void accessTokenChanged(const QString & accessToken);
+ void downloadPebbleApp(const QString & downloadTitle, const QString & downloadUrl);
+ void downloadInProgressChanged();
+ void call(const QString &, const QString &);
+
+private:
+ QNetworkAccessManager* m_networkManager;
+ QUrl m_configUrl;
+ QString m_accessToken;
+ QJsonObject downloadObject;
+ QJsonObject storeConfigObject;
+ bool m_downloadInProgress;
+
+ QUrl prepareUrl(QString baseUrl);
+ void fetchData(QUrl url);
+};
+
+#endif // PEBBLESTOREVIEW_H