feat(l2): long trails with a card copy; map follow and redraw fixes

Trail on the L2: 32768 points every 5 m, no simplification, no point
spacing setting; copied to the card every minute and restored at power-on.
The line keeps up with the position dot (incremental sync, pending point).

Map: a tap's finger jitter no longer turns follow off; the GPS button
shows when the map follows. The trail is drawn as one polyline with
breaks and off-view chunks skipped (an lv_line queued a draw task per
point).

Fewer rebuilds: conversation bubbles patched (new messages, delivery
marks), home mini-map dots reused, Nearby rows rewritten in place,
history read in runs and each file opened once.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Jakub
2026-09-29 22:02:49 +02:00
co-authored by Claude Opus 5.5
parent 5f6cbe34b3
commit b3b77a1f6d
15 changed files with 601 additions and 188 deletions
@@ -57,6 +57,13 @@ static void drawTrail(DisplayDriver& d, TrailStore& tr, Project project, OnBreak
else drawLine(d, x0, y0, x1, y1);
x0 = x1; y0 = y1;
}
// The simplifier's pending point: the straight stretch walked since the
// last vertex, so the line reaches where you are instead of lagging behind.
TrailPoint pend;
if (tr.pendingPoint(pend)) {
int x1, y1; project(pend.lat_1e6, pend.lon_1e6, x1, y1);
drawLine(d, x0, y0, x1, y1);
}
}
} // namespace gfx