From 3457a32621ef05aa5edd961fed789cd7a9423690 Mon Sep 17 00:00:00 2001 From: Roman Belyakovsky Date: Tue, 28 Apr 2026 22:23:53 +0300 Subject: [PATCH] Fixing bt status --- applications/system/hid_app/views/hid_ptt.c | 35 ++++++++++++++------- 1 file changed, 24 insertions(+), 11 deletions(-) diff --git a/applications/system/hid_app/views/hid_ptt.c b/applications/system/hid_app/views/hid_ptt.c index f4f476e31..999888641 100644 --- a/applications/system/hid_app/views/hid_ptt.c +++ b/applications/system/hid_app/views/hid_ptt.c @@ -679,15 +679,24 @@ static void hid_ptt_draw_text_centered(Canvas* canvas, uint8_t y, FuriString* st static void hid_ptt_draw_bt_connected(Canvas* canvas, uint8_t x, uint8_t y) { // Home-like compact Bluetooth glyph with activity line and end dot. canvas_draw_line(canvas, x + 1, y + 0, x + 1, y + 7); - canvas_draw_line(canvas, x + 1, y + 4, x + 4, y + 1); - canvas_draw_line(canvas, x + 1, y + 4, x + 4, y + 7); canvas_draw_line(canvas, x + 1, y + 0, x + 4, y + 2); canvas_draw_line(canvas, x + 1, y + 7, x + 4, y + 5); + canvas_draw_line(canvas, x + 1, y + 4, x + 4, y + 1); + canvas_draw_line(canvas, x + 1, y + 4, x + 4, y + 7); - canvas_draw_line(canvas, x + 6, y + 4, x + 12, y + 4); + canvas_draw_line(canvas, x + 7, y + 4, x + 12, y + 4); canvas_draw_disc(canvas, x + 14, y + 4, 1); } +static void hid_ptt_draw_bt_idle(Canvas* canvas, uint8_t x, uint8_t y) { + // Home-like disconnected icon: only Bluetooth glyph. + canvas_draw_line(canvas, x + 1, y + 0, x + 1, y + 7); + canvas_draw_line(canvas, x + 1, y + 0, x + 4, y + 2); + canvas_draw_line(canvas, x + 1, y + 7, x + 4, y + 5); + canvas_draw_line(canvas, x + 1, y + 4, x + 4, y + 1); + canvas_draw_line(canvas, x + 1, y + 4, x + 4, y + 7); +} + static void hid_ptt_draw_status_bar(Canvas* canvas, bool show_bt, bool connected) { char time_str[16]; DateTime dt; @@ -710,17 +719,21 @@ static void hid_ptt_draw_status_bar(Canvas* canvas, bool show_bt, bool connected } canvas_set_color(canvas, ColorWhite); - canvas_draw_box(canvas, 0, 0, 64, 11); + canvas_draw_box(canvas, 0, 0, 64, 13); canvas_set_color(canvas, ColorBlack); - canvas_draw_rframe(canvas, 0, 0, 64, 11, 1); - canvas_draw_line(canvas, 1, 9, 62, 9); + canvas_draw_rframe(canvas, 0, 0, 64, 13, 1); + canvas_draw_line(canvas, 1, 11, 62, 11); - if(show_bt && connected) { - hid_ptt_draw_bt_connected(canvas, 3, 1); + if(show_bt) { + if(connected) { + hid_ptt_draw_bt_connected(canvas, 3, 2); + } else { + hid_ptt_draw_bt_idle(canvas, 3, 2); + } } const uint8_t battery_x = 47; - const uint8_t battery_y = 2; + const uint8_t battery_y = 3; const uint8_t battery_w = 13; const uint8_t battery_h = 6; canvas_draw_frame(canvas, battery_x, battery_y, battery_w, battery_h); @@ -728,14 +741,14 @@ static void hid_ptt_draw_status_bar(Canvas* canvas, bool show_bt, bool connected canvas_draw_box(canvas, battery_x + 1, battery_y + 1, ((battery_w - 2) * battery) / 100, 4); canvas_set_font(canvas, FontPrimary); - canvas_draw_str_aligned(canvas, 31, 8, AlignCenter, AlignBottom, time_str); + canvas_draw_str_aligned(canvas, 31, 9, AlignCenter, AlignBottom, time_str); } static void hid_ptt_draw_callback(Canvas* canvas, void* context) { furi_assert(context); HidPushToTalkModel* model = context; - const uint8_t top_offset = 11; + const uint8_t top_offset = 13; const uint8_t status_bar_bottom_y = top_offset; const uint8_t helper_top_y = 92;