diff options
Diffstat (limited to 'app')
| -rw-r--r-- | app/pebblestoreview.cpp | 38 | ||||
| -rw-r--r-- | app/pebblestoreview.h | 6 | ||||
| -rw-r--r-- | app/qml/pages/AppStorePage.qml | 1 |
3 files changed, 40 insertions, 5 deletions
diff --git a/app/pebblestoreview.cpp b/app/pebblestoreview.cpp index 717eff3..17d690f 100644 --- a/app/pebblestoreview.cpp +++ b/app/pebblestoreview.cpp @@ -11,8 +11,18 @@ PebbleStoreView::PebbleStoreView() this->m_networkManager = new QNetworkAccessManager(this); connect(this->m_networkManager, SIGNAL(finished(QNetworkReply*)), this, SLOT(onNetworkReplyFinished(QNetworkReply*))); +} + +void PebbleStoreView::fetchConfig() +{ + qDebug()<<this->m_hardwarePlatform; + + if (this->m_hardwarePlatform == "aplite") { + this->m_configUrl = QUrl("https://boot.getpebble.com/api/config/android/v1/3"); + } else { + this->m_configUrl = QUrl("https://boot.getpebble.com/api/config/android/v3/1?app_version=3.4.0"); + } - this->m_configUrl = QUrl("https://boot.getpebble.com/api/config/android/v1/3"); this->m_downloadInProgress = false; emit downloadInProgressChanged(); @@ -31,10 +41,25 @@ void PebbleStoreView::setAccessToken(const QString &accessToken) emit accessTokenChanged(accessToken); } +QString PebbleStoreView::hardwarePlatform() const +{ + return this->m_hardwarePlatform; +} + +void PebbleStoreView::setHardwarePlatform(const QString &hardwarePlatform) +{ + this->m_hardwarePlatform = hardwarePlatform; + emit hardwarePlatformChanged(hardwarePlatform); + + //We need to refetch the config after a platform change + this->fetchConfig(); +} + + void PebbleStoreView::logout() { setAccessToken(""); - setUrl(prepareUrl(this->storeConfigObject.value("webviews").toObject().value("authentication").toString())); + setUrl(prepareUrl(this->storeConfigObject.value("webviews").toObject().value("authentication/sign_in").toString())); } bool PebbleStoreView::loggedin() @@ -128,7 +153,7 @@ void PebbleStoreView::onNetworkReplyFinished(QNetworkReply* reply) this->storeConfigObject = jsonObject.value("config").toObject(); if (this->m_accessToken.isEmpty()) { - setUrl(prepareUrl(this->storeConfigObject.value("webviews").toObject().value("authentication").toString())); + setUrl(prepareUrl(this->storeConfigObject.value("webviews").toObject().value("authentication/sign_in").toString())); } else { setUrl(prepareUrl(this->storeConfigObject.value("webviews").toObject().value("onboarding/get_some_apps").toString())); } @@ -164,9 +189,12 @@ void PebbleStoreView::onNetworkReplyFinished(QNetworkReply* reply) QUrl PebbleStoreView::prepareUrl(QString baseUrl) { baseUrl = baseUrl.replace("$$user_id$$", "ZZZ"); - baseUrl = baseUrl.replace("$$phone_id$$", "XXX"); - baseUrl = baseUrl.replace("$$pebble_id$$", "YYY"); + baseUrl = baseUrl.replace("$$phone_id$$", "XXX"); //Unique phone id + baseUrl = baseUrl.replace("$$pebble_id$$", "YYY"); //official APP puts serial here + baseUrl = baseUrl.replace("$$pebble_color$$", "64"); + baseUrl = baseUrl.replace("$$hardware$$", this->m_hardwarePlatform); baseUrl = baseUrl.replace("$$access_token$$", this->m_accessToken); + baseUrl = baseUrl.replace("$$extras$$", ""); qDebug()<<baseUrl; diff --git a/app/pebblestoreview.h b/app/pebblestoreview.h index 551b863..24b7807 100644 --- a/app/pebblestoreview.h +++ b/app/pebblestoreview.h @@ -16,11 +16,14 @@ public: 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) + Q_PROPERTY(QString hardwarePlatform READ hardwarePlatform WRITE setHardwarePlatform NOTIFY hardwarePlatformChanged) bool loggedin(); bool downloadInProgress(); QString accessToken() const; void setAccessToken(const QString &accessToken); + QString hardwarePlatform() const; + void setHardwarePlatform(const QString &hardwarePlatform); public slots: void gotoWatchFaces(); @@ -34,6 +37,7 @@ private slots: signals: void accessTokenChanged(const QString & accessToken); + void hardwarePlatformChanged(const QString & hardwarePlatform); void downloadPebbleApp(const QString & downloadTitle, const QString & downloadUrl); void downloadInProgressChanged(); void titleChanged(const QString & title); @@ -42,11 +46,13 @@ private: QNetworkAccessManager* m_networkManager; QUrl m_configUrl; QString m_accessToken; + QString m_hardwarePlatform; QJsonObject downloadObject; QJsonObject storeConfigObject; bool m_downloadInProgress; QUrl prepareUrl(QString baseUrl); + void fetchConfig(); void fetchData(QUrl url); void addToLocker(QJsonObject data); void removeFromLocker(QJsonObject data); diff --git a/app/qml/pages/AppStorePage.qml b/app/qml/pages/AppStorePage.qml index 4993b1b..58e854d 100644 --- a/app/qml/pages/AppStorePage.qml +++ b/app/qml/pages/AppStorePage.qml @@ -134,6 +134,7 @@ Page { } accessToken: settings.storeAccessToken + hardwarePlatform: pebbled.info.platform onAccessTokenChanged: { settings.storeAccessToken = accessToken; |
