diff --git a/app/boards/shields/nice_view/Kconfig.defconfig b/app/boards/shields/nice_view/Kconfig.defconfig index c31cec89f0f..f3ca476dffd 100644 --- a/app/boards/shields/nice_view/Kconfig.defconfig +++ b/app/boards/shields/nice_view/Kconfig.defconfig @@ -39,6 +39,9 @@ config NICE_VIEW_WIDGET_STATUS config NICE_VIEW_WIDGET_INVERTED bool "Invert custom status widget colors" +config NICE_VIEW_WIDGET_BATTERY_SHOW_PERCENTAGE + bool "Show battery percentage in status widget" + if !ZMK_SPLIT || ZMK_SPLIT_ROLE_CENTRAL config NICE_VIEW_WIDGET_STATUS diff --git a/app/boards/shields/nice_view/widgets/util.c b/app/boards/shields/nice_view/widgets/util.c index b4915ab767f..e9d313d7479 100644 --- a/app/boards/shields/nice_view/widgets/util.c +++ b/app/boards/shields/nice_view/widgets/util.c @@ -32,7 +32,18 @@ void draw_battery(lv_obj_t *canvas, const struct status_state *state) { lv_canvas_draw_rect(canvas, 0, 2, 29, 12, &rect_white_dsc); lv_canvas_draw_rect(canvas, 1, 3, 27, 10, &rect_black_dsc); + +#if CONFIG_NICE_VIEW_WIDGET_BATTERY_SHOW_PERCENTAGE + lv_draw_label_dsc_t label_dsc_battery; + init_label_dsc(&label_dsc_battery, LVGL_FOREGROUND, &lv_font_unscii_8, LV_TEXT_ALIGN_RIGHT); + + char battery_text[6] = {}; + snprintf(battery_text, sizeof(battery_text), "%d", state->battery); + lv_canvas_draw_text(canvas, 2, 4, 24, &label_dsc_battery, battery_text); +#else lv_canvas_draw_rect(canvas, 2, 4, (state->battery + 2) / 4, 8, &rect_white_dsc); +#endif + lv_canvas_draw_rect(canvas, 30, 5, 3, 6, &rect_white_dsc); lv_canvas_draw_rect(canvas, 31, 6, 1, 4, &rect_black_dsc);