mirror of
https://github.com/MarekZegare4/MeshCore-Solo.git
synced 2026-07-26 23:08:11 +00:00
Enter on an empty Favourites slot opens a PopupMenu listing candidate contacts. Sourced first from upstream-favourited chat contacts (those flagged with c.flags & 0x01), then from recent DM contacts (resolved from the 4-byte _dm_hist prefix to a full 6-byte pub_key via the contact list), deduped against the favourites list. Capped at 12 entries. Selection writes the chosen 6-byte prefix into the target slot; if the contact is already pinned elsewhere, the previous slot is vacated first (one contact per dial, per the agreed pin-only semantics). savePrefs commits to flash and a brief alert confirms. Plumbing: - New QuickMsgScreen::getRecentDMContacts() resolves recent DM senders to 6-byte pub_key prefixes, deduped, newest first - UITask::getRecentDMContacts() wraps it so HomeScreen doesn't reach into the QuickMsg screen directly - HomeScreen gains its own PopupMenu + per-entry pub_key / label buffers (12 × 6 B keys + 12 × 22 B labels), no shared state with QuickMsg's Contact-options menu Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>