Fix firmware download
This commit is contained in:
@@ -31,6 +31,7 @@ void OtaUpdateActivity::onWifiSelectionComplete(const bool success) {
|
||||
LOG_DBG("OTA", "Update check failed: %d", res);
|
||||
{
|
||||
RenderLock lock(*this);
|
||||
failureReason = res;
|
||||
state = FAILED;
|
||||
}
|
||||
return;
|
||||
@@ -126,6 +127,35 @@ void OtaUpdateActivity::render(RenderLock&&) {
|
||||
GUI.drawButtonHints(renderer, labels.btn1, labels.btn2, labels.btn3, labels.btn4);
|
||||
} else if (state == FAILED) {
|
||||
renderer.drawCenteredText(UI_10_FONT_ID, top, tr(STR_UPDATE_FAILED), true, EpdFontFamily::BOLD);
|
||||
const char* reason = "";
|
||||
switch (failureReason) {
|
||||
case OtaUpdater::HTTP_ERROR:
|
||||
reason = "Network error (HTTP request failed)";
|
||||
break;
|
||||
case OtaUpdater::JSON_PARSE_ERROR:
|
||||
reason = "Could not parse release info";
|
||||
break;
|
||||
case OtaUpdater::UPDATE_OLDER_ERROR:
|
||||
reason = "Available version is not newer";
|
||||
break;
|
||||
case OtaUpdater::OOM_ERROR:
|
||||
reason = "Out of memory";
|
||||
break;
|
||||
case OtaUpdater::INTERNAL_UPDATE_ERROR:
|
||||
reason = "Internal update error";
|
||||
break;
|
||||
case OtaUpdater::NO_UPDATE:
|
||||
reason = "No firmware asset found";
|
||||
break;
|
||||
case OtaUpdater::VALIDATE_FAILED:
|
||||
reason = "Image validation failed - please flash via USB";
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
if (reason[0] != '\0') {
|
||||
renderer.drawCenteredText(SMALL_FONT_ID, top + height + metrics.verticalSpacing, reason);
|
||||
}
|
||||
const auto labels = mappedInput.mapLabels(tr(STR_BACK), "", "", "");
|
||||
GUI.drawButtonHints(renderer, labels.btn1, labels.btn2, labels.btn3, labels.btn4);
|
||||
} else if (state == FINISHED) {
|
||||
@@ -151,6 +181,7 @@ void OtaUpdateActivity::loop() {
|
||||
LOG_DBG("OTA", "Update begin failed: %d", beginResult);
|
||||
{
|
||||
RenderLock lock(*this);
|
||||
failureReason = beginResult;
|
||||
state = FAILED;
|
||||
}
|
||||
requestUpdate();
|
||||
@@ -205,6 +236,7 @@ void OtaUpdateActivity::loop() {
|
||||
LOG_DBG("OTA", "Update failed: %d", res);
|
||||
{
|
||||
RenderLock lock(*this);
|
||||
failureReason = res;
|
||||
state = FAILED;
|
||||
}
|
||||
requestUpdate();
|
||||
|
||||
Reference in New Issue
Block a user