summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorRiku Isokoski <riksu9000@gmail.com>2022-04-09 14:47:43 +0300
committerRiku Isokoski <riksu9000@gmail.com>2022-04-25 15:47:53 +0300
commitd7441d18be75051751d4a43118ce5885596b0a2c (patch)
tree9d9488c88e502c561dad1578649df13d38e04899 /src
parent129dd97b513e077ba15d6c3f5d7afce06664e0b4 (diff)
Firmware update screen fixes
Diffstat (limited to 'src')
-rw-r--r--src/displayapp/screens/FirmwareUpdate.cpp21
1 files changed, 10 insertions, 11 deletions
diff --git a/src/displayapp/screens/FirmwareUpdate.cpp b/src/displayapp/screens/FirmwareUpdate.cpp
index 0a8544b3..0e043097 100644
--- a/src/displayapp/screens/FirmwareUpdate.cpp
+++ b/src/displayapp/screens/FirmwareUpdate.cpp
@@ -16,18 +16,17 @@ FirmwareUpdate::FirmwareUpdate(Pinetime::Applications::DisplayApp* app, Pinetime
titleLabel = lv_label_create(lv_scr_act(), nullptr);
lv_label_set_text_static(titleLabel, "Firmware update");
- lv_obj_set_auto_realign(titleLabel, true);
lv_obj_align(titleLabel, nullptr, LV_ALIGN_IN_TOP_MID, 0, 50);
bar1 = lv_bar_create(lv_scr_act(), nullptr);
lv_obj_set_size(bar1, 200, 30);
lv_obj_align(bar1, nullptr, LV_ALIGN_CENTER, 0, 0);
- lv_bar_set_anim_time(bar1, 10);
- lv_bar_set_range(bar1, 0, 100);
+ lv_bar_set_range(bar1, 0, 1000);
lv_bar_set_value(bar1, 0, LV_ANIM_OFF);
percentLabel = lv_label_create(lv_scr_act(), nullptr);
lv_label_set_text_static(percentLabel, "Waiting...");
+ lv_label_set_recolor(percentLabel, true);
lv_obj_set_auto_realign(percentLabel, true);
lv_obj_align(percentLabel, bar1, LV_ALIGN_OUT_TOP_MID, 0, 60);
taskRefresh = lv_task_create(RefreshTaskCallback, LV_DISP_DEF_REFR_PERIOD, LV_TASK_PRIO_MID, this);
@@ -55,8 +54,9 @@ void FirmwareUpdate::Refresh() {
}
break;
case Pinetime::Controllers::Ble::FirmwareUpdateStates::Running:
- if (state != States::Running)
+ if (state != States::Running) {
state = States::Running;
+ }
DisplayProgression();
break;
case Pinetime::Controllers::Ble::FirmwareUpdateStates::Validated:
@@ -78,21 +78,20 @@ void FirmwareUpdate::Refresh() {
}
void FirmwareUpdate::DisplayProgression() const {
- float current = bleController.FirmwareUpdateCurrentBytes() / 1024.0f;
- float total = bleController.FirmwareUpdateTotalBytes() / 1024.0f;
- int16_t pc = (current / total) * 100.0f;
- lv_label_set_text_fmt(percentLabel, "%d %%", pc);
+ const uint32_t current = bleController.FirmwareUpdateCurrentBytes();
+ const uint32_t total = bleController.FirmwareUpdateTotalBytes();
+ const int16_t permille = current / (total / 1000);
+
+ lv_label_set_text_fmt(percentLabel, "%d %%", permille / 10);
- lv_bar_set_value(bar1, pc, LV_ANIM_OFF);
+ lv_bar_set_value(bar1, permille, LV_ANIM_OFF);
}
void FirmwareUpdate::UpdateValidated() {
- lv_label_set_recolor(percentLabel, true);
lv_label_set_text_static(percentLabel, "#00ff00 Image Ok!#");
}
void FirmwareUpdate::UpdateError() {
- lv_label_set_recolor(percentLabel, true);
lv_label_set_text_static(percentLabel, "#ff0000 Error!#");
startTime = xTaskGetTickCount();
}