fix: auto-advert indicator - capital A with space, slow blink, proper refresh

- Changed ~ to " A" (space + capital A, no inverted background)
- Blink: on 500ms / off 1500ms (once per 2s)
- Home screen refresh rate drops to 500ms when auto-advert is active
  so the blink is actually visible

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Jakub
2026-05-14 17:25:27 +02:00
parent e38dc87c25
commit 8efff38a4f

View File

@@ -1798,13 +1798,8 @@ public:
display.translateUTF8ToBlocks(filtered_name, _node_prefs->node_name, sizeof(filtered_name)); display.translateUTF8ToBlocks(filtered_name, _node_prefs->node_name, sizeof(filtered_name));
display.setCursor(0, 0); display.setCursor(0, 0);
display.print(filtered_name); display.print(filtered_name);
if (_node_prefs->advert_auto_interval_sec > 0 && (millis() / 250) % 2) { if (_node_prefs->advert_auto_interval_sec > 0 && (millis() % 2000) < 500) {
int ax = display.getTextWidth(filtered_name); display.print(" A");
display.fillRect(ax, 0, display.getTextWidth("~") + 1, 9);
display.setColor(DisplayDriver::DARK);
display.setCursor(ax, 0);
display.print("~");
display.setColor(DisplayDriver::LIGHT);
} }
renderBatteryIndicator(display, _task->getBattMilliVolts()); renderBatteryIndicator(display, _task->getBattMilliVolts());
} }
@@ -2141,11 +2136,12 @@ public:
display.drawTextCentered(display.width() / 2, 64 - 11, "hibernate:" PRESS_LABEL); display.drawTextCentered(display.width() / 2, 64 - 11, "hibernate:" PRESS_LABEL);
} }
} }
bool auto_adv = _node_prefs && _node_prefs->advert_auto_interval_sec > 0;
if (_page == HomePage::CLOCK) { if (_page == HomePage::CLOCK) {
bool show_sec = !_node_prefs || !_node_prefs->clock_hide_seconds; bool show_sec = !_node_prefs || !_node_prefs->clock_hide_seconds;
return show_sec ? 1000 : 60000; return auto_adv ? 500 : (show_sec ? 1000 : 60000);
} }
return 5000; return auto_adv ? 500 : 5000;
} }
bool handleInput(char c) override { bool handleInput(char c) override {