mirror of
https://github.com/MarekZegare4/MeshCore-Solo.git
synced 2026-09-24 11:56:38 +00:00
fix(ui): unify the four navigate views, add Set as target everywhere
Continuing the consistency pass: the four screens that show the distance/bearing "navigate to a point" view (Nodes, Waypoints, Trail's Track back, and navigating to a location shared in a message) had drifted apart in three ways. Only two of the four passed an EtaTracker to navview::draw(), so only Nodes and Track back showed the closing-speed/ETA line -- navigating to a waypoint or a shared location left it off for no reason. All four get one now. They also left the view on three different key sets (Back alone, Back+LEFT/RIGHT, Back+Enter); Back is now the only way out of any of them, so a stray sideways nudge can't drop you out of a running track-back. Messages' renderNav() also switched from reading node_prefs directly to the shared useImperial() helper the other three already used. Set as target -- the row Nodes and Waypoints both offer for a coordinate -- was missing from the message-location Options menu; added alongside Navigate and Save waypoint. Nodes' own Set as target required a full 32-byte public key, which a name-only live-track entry (someone sharing position on a channel who isn't a saved contact -- the group-outing case this exists for) never has. One flag was doing two jobs: "can be pinged" (needs the full key) and "can be identified" (needs only the 6-byte prefix a person target actually uses). Split into has_key/has_prefix; Set as target now only needs a position, resolving to a person target (follows them) when a prefix is available and a place target (pinned where they were) when it isn't -- the same distinction Locator's own picker already draws. Locator's target picker separately still listed the people pinned to the Favourites Dial as its privileged top tier, which stopped making sense once pinning and favouriting became separate concepts. It now leads with favourites instead, matching every other list in the firmware.
This commit is contained in:
@@ -64,7 +64,7 @@ Posting to a **room server** needs a login handshake — the device does this on
|
||||
|
||||
Messages appear as chat bubbles sized to their content — **right**-anchored for outgoing, **left** for incoming — with sender name and a compact age indicator (`3m`, `2h`, `>1d`) in the top-right corner. List runs **newest at the bottom**; opening a history starts at the latest message, scrolling up goes further back.
|
||||
|
||||
**Short Enter** on a message opens it in fullscreen. **Hold Enter** — on a history row or in fullscreen — opens the same options menu: Reply, plus **Navigate** / **Save waypoint** when the message contains a location, and **Path** / **Relayed by** when hop data is available (see Fullscreen message view). You don't need to open the message first.
|
||||
**Short Enter** on a message opens it in fullscreen. **Hold Enter** — on a history row or in fullscreen — opens the same options menu: Reply, plus **Navigate** / **Save waypoint** / **Set as target** when the message contains a location, and **Path** / **Relayed by** when hop data is available (see Fullscreen message view). You don't need to open the message first.
|
||||
|
||||
---
|
||||
|
||||
@@ -82,10 +82,11 @@ If the message is a reply addressed to someone (`@[nick]`), a **To: nick** bar i
|
||||
| :-----------------------: | :-----------------------: |
|
||||
|  |  |
|
||||
|
||||
**Hold Enter** in fullscreen opens the options menu. It always offers **Reply** for an incoming message, and when the message contains a **location** it adds two more:
|
||||
**Hold Enter** in fullscreen opens the options menu. It always offers **Reply** for an incoming message, and when the message contains a **location** it adds three more:
|
||||
|
||||
- **Navigate** — opens the bearing/distance view to those coordinates (the same two-bearing screen as Waypoints and Nearby; **Back** returns to the message).
|
||||
- **Save waypoint** — stores the location as a waypoint (visible on the trail map and in the Waypoints list).
|
||||
- **Set as target** — pins those coordinates as the active **Locator/Nav target** in one step, the same row Nodes and Waypoints offer (see Tools › Locator).
|
||||
|
||||
A location is any `lat,lon` pair in the text — exactly what the `{loc}` placeholder inserts — so you can navigate to anything a contact shares. A `[WAY]lat,lon label` share also carries a name, used as the waypoint label. This works on DMs and channel messages, incoming or outgoing.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user