refactor: shared text-entry popup (ui-lvgl) and chat bubble row (ui-new); GPS search clock keeps a found fix

- ui-lvgl: navTextEntry()/TextEntry replace eight copies of popup + field +
  keyboard wiring; one byte-capped insert callback instead of two.
- ui-new: drawHeadedBubble()/BubbleMark replace the duplicated DM and channel
  bubble drawing in MessagesScreen.
- GpsSky::halt(): stopping the receiver ends an unfinished search but keeps
  the first-fix time; keyboard cursor blink restarts after a key.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VeBrxKyHHxWsmttVkUdBrj
This commit is contained in:
Claude
2026-10-05 07:23:56 +00:00
parent 997da95ecf
commit 84fd5013b5
14 changed files with 180 additions and 251 deletions
+4
View File
@@ -56,6 +56,10 @@ public:
_len = 0;
}
// The receiver was switched off: a search that never ended stops counting
// (a fix already found keeps its time-to-first-fix to look at).
void halt() { if (!ttff_ms) start_ms = 0; }
void feed(char c) {
if (c == '$') { _len = 0; _buf[_len++] = c; return; }
if (_len == 0) return;
@@ -105,7 +105,7 @@ public :
void stop() override {
#ifdef GPS_SKYVIEW
_sky.reset(); // a receiver that is off is not searching: stop the TTFF clock
_sky.halt(); // a receiver that is off is not searching: stop the search clock
#endif
if (_pin_en != -1) {
digitalWrite(_pin_en, !GPS_EN_ACTIVE);