diff --git a/src/activities/settings/OtaUpdateActivity.cpp b/src/activities/settings/OtaUpdateActivity.cpp index 11fa08ec..d31f4103 100644 --- a/src/activities/settings/OtaUpdateActivity.cpp +++ b/src/activities/settings/OtaUpdateActivity.cpp @@ -193,17 +193,12 @@ void OtaUpdateActivity::loop() { if (state == WAITING_CONFIRMATION) { if (inputManager.wasPressed(InputManager::BTN_CONFIRM)) { Serial.printf("[%lu] [OTA] New update available, starting download...\n", millis()); - int lastUpdatePercentage = 0; xSemaphoreTake(renderingMutex, portMAX_DELAY); state = UPDATE_IN_PROGRESS; xSemaphoreGive(renderingMutex); updateRequired = true; vTaskDelay(10 / portTICK_PERIOD_MS); - const auto res = updater.installUpdate([this, &lastUpdatePercentage](const size_t progress, const size_t total) { - // Only trigger display updates every 2% at most - updateRequired = true; - // vTaskDelay(10 / portTICK_PERIOD_MS); - }); + const auto res = updater.installUpdate([this](const size_t, const size_t) { updateRequired = true; }); if (res != OtaUpdater::OK) { Serial.printf("[%lu] [OTA] Update failed: %d\n", millis(), res); diff --git a/src/activities/settings/OtaUpdateActivity.h b/src/activities/settings/OtaUpdateActivity.h index 81217a14..20be6faa 100644 --- a/src/activities/settings/OtaUpdateActivity.h +++ b/src/activities/settings/OtaUpdateActivity.h @@ -18,12 +18,15 @@ class OtaUpdateActivity : public ActivityWithSubactivity { SHUTTING_DOWN }; + // Can't initialize this to 0 or the first render doesn't happen + static constexpr unsigned int UNINITIALIZED_PERCENTAGE = 111; + TaskHandle_t displayTaskHandle = nullptr; SemaphoreHandle_t renderingMutex = nullptr; bool updateRequired = false; const std::function goBack; State state = WIFI_SELECTION; - unsigned int lastUpdaterPercentage = 111; // Can't initialize this to 0 or the first render doesn't happen + unsigned int lastUpdaterPercentage = UNINITIALIZED_PERCENTAGE; OtaUpdater updater; void onWifiSelectionComplete(bool success); diff --git a/src/network/OtaUpdater.cpp b/src/network/OtaUpdater.cpp index 3187cac0..249c4570 100644 --- a/src/network/OtaUpdater.cpp +++ b/src/network/OtaUpdater.cpp @@ -27,7 +27,7 @@ OtaUpdater::OtaUpdaterError OtaUpdater::checkForUpdate() { } JsonDocument doc; - const DeserializationError error = deserializeJson(doc, http.getStream()); + const DeserializationError error = deserializeJson(doc, *client); http.end(); if (error) { Serial.printf("[%lu] [OTA] JSON parse failed: %s\n", millis(), error.c_str()); @@ -121,6 +121,7 @@ OtaUpdater::OtaUpdaterError OtaUpdater::installUpdate(const std::function