mirror of
https://github.com/MarekZegare4/MeshCore-Solo.git
synced 2026-07-26 23:08:11 +00:00
Adds a fourth item to the QuickMsg Contact options popup that toggles between "Pin to dial" (when the contact isn't pinned) and "Unpin (slot N)" (when it is). Pinning opens a six-slot picker submenu labeled "Slot N: <name>" or "Slot N: empty"; the chosen slot stores the 6-byte pub_key prefix in NodePrefs::favourite_contacts and savePrefs commits to flash with a brief confirmation alert. New UITask helpers backing the flow: - findFavouriteSlot(pub_key) — returns 0..5 if pinned, -1 otherwise - isFavouriteSlotEmpty(slot) - setFavouriteSlot(slot, pub_key) / clearFavouriteSlot(slot) PopupMenu reuse: a single _ctx_menu instance hosts both the Contact options menu and the slot picker, gated by _pin_picker_active so input routes correctly. Reset on screen reset() and on any non-NONE menu result. Slot labels live in a member buffer (6×22 B) because PopupMenu stores the string pointers verbatim. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>