summaryrefslogtreecommitdiff
path: root/app/pebblefirmware.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'app/pebblefirmware.cpp')
-rw-r--r--app/pebblefirmware.cpp18
1 files changed, 15 insertions, 3 deletions
diff --git a/app/pebblefirmware.cpp b/app/pebblefirmware.cpp
index 33460e5..e3bbc5a 100644
--- a/app/pebblefirmware.cpp
+++ b/app/pebblefirmware.cpp
@@ -16,16 +16,28 @@ PebbleFirmware::PebbleFirmware(QObject *parent) :
void PebbleFirmware::updateLatest(QString hw)
{
QNetworkRequest req;
- req.setUrl(firmwareURL.arg(hw).arg(hw.startsWith("snowy_") ? "release-v3" : "release-v2"));
+ req.setUrl(firmwareURL.arg(hw).arg("release-v3.8"));
req.setRawHeader("Cache-Control", "no-cache");
qDebug() << "Getting latest firmware" << req.url();
nm->get(req);
}
-void PebbleFirmware::fetchFirmware(QString type)
+void PebbleFirmware::fetchFirmware(QString currVer)
{
+ QJsonObject targetFirmware;
+ if (_latest.contains("3.x-migration") && currVer < "v3.0.0") {
+ targetFirmware = _latest.value("3.x-migration").toObject();
+ } else if (currVer >= "v3.0.0" &&
+ _latest.value("normal").toObject().value("friendlyVersion").toString() > currVer){
+ targetFirmware = _latest.value("normal").toObject();
+ }
+
+ if (targetFirmware.isEmpty()) {
+ qDebug() << "Watch firmware is up to date";
+ return;
+ }
QNetworkRequest req;
- req.setUrl(_latest.value(type).toObject().value("url").toString());
+ req.setUrl(targetFirmware.value("url").toString());
req.setRawHeader("Cache-Control", "no-cache");
qDebug() << "Fetching firmware" << req.url();
nm->get(req);