Fixing bt status

This commit is contained in:
Roman Belyakovsky
2026-04-28 22:23:53 +03:00
parent a9438319d6
commit 3457a32621
+24 -11
View File
@@ -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;