From 94a8ccc91250ce8704e9c3f3ba734a7d19531287 Mon Sep 17 00:00:00 2001 From: Willy-JL <49810075+Willy-JL@users.noreply.github.com> Date: Fri, 3 May 2024 03:35:56 +0100 Subject: [PATCH] Updater: Show stage progress percentage --- .../system/updater/util/update_task.c | 22 ++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/applications/system/updater/util/update_task.c b/applications/system/updater/util/update_task.c index 8a3285ed0..47b2746ce 100644 --- a/applications/system/updater/util/update_task.c +++ b/applications/system/updater/util/update_task.c @@ -334,11 +334,23 @@ void update_task_set_progress(UpdateTask* update_task, UpdateTaskStage stage, ui update_task->state.overall_progress = adapted_progress; if(update_task->status_change_cb) { - (update_task->status_change_cb)( - furi_string_get_cstr(update_task->state.status), - adapted_progress, - update_stage_is_error(update_task->state.stage), - update_task->status_change_cb_state); + if(update_stage_is_error(update_task->state.stage)) { + (update_task->status_change_cb)( + furi_string_get_cstr(update_task->state.status), + adapted_progress, + update_stage_is_error(update_task->state.stage), + update_task->status_change_cb_state); + } else { + size_t len = furi_string_size(update_task->state.status) + strlen(" 100%") + 1; + char* s = malloc(len); + snprintf(s, len, "%s %d%%", furi_string_get_cstr(update_task->state.status), progress); + (update_task->status_change_cb)( + s, + adapted_progress, + update_stage_is_error(update_task->state.stage), + update_task->status_change_cb_state); + free(s); + } } }