mirror of
https://github.com/MarekZegare4/MeshCore-Solo.git
synced 2026-09-14 15:16:40 +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:
@@ -16,6 +16,10 @@
|
||||
- **Enter on a `Notif:` / `Melody:` / `Fav:` / `Sort:` row in a context menu now changes the value instead of closing the menu.** Those rows show a value you step through with LEFT/RIGHT, but Enter treated them as ordinary menu picks and dismissed the popup, so changing two of them meant reopening the menu in between. Enter now advances the value and the menu stays open — only Back closes it — across the Messages contact/room/channel menus, Tools › Nodes, and the Ringtone editor, matching what Trail › Settings already did. The Nodes `Fav` row was the worst of it: LEFT/RIGHT did nothing there at all, so the only way to toggle a favourite was an Enter that closed the menu on every flip.
|
||||
- **Settings rows Auto-off, Low battery, GPS pwr and Battery ignored Enter**, even though their options wrap around exactly like the melody, keyboard and clock rows next to them, where Enter has always stepped to the next value. They now accept Enter too. Rows that ramp between fixed ends instead of wrapping — Brightness, Volume, TX Pwr, Timezone, SF/BW/CR — stay LEFT/RIGHT-only, since there is nothing to wrap to.
|
||||
- **The Settings › Contacts filter rows read `DM`, `all` and `fav` in three different casings** from each other and from the rest of the screen. Now `DMs`, `All` and `Fav`.
|
||||
- **The four navigate views behaved differently from each other.** They all draw the same screen — distance, bearing to target, your heading — but only two of them (Nodes › Navigate and Trail › Track back) showed the closing-speed/**ETA** line; navigating to a waypoint or to a location shared in a message left it off for no reason. All four show it now. They also left the view on three different key sets — Back, LEFT/RIGHT on some, Enter on another. **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.
|
||||
- **A location shared in a message could be navigated to and saved as a waypoint, but not set as the Locator target** — the one row that Nodes and Waypoints both offer for a coordinate. **Set as target** now joins Navigate and Save waypoint in the message Options menu.
|
||||
- **Tools › Nodes refused to make a Locator target out of a node whose full public key it didn't have**, even with a perfectly good position on screen — the row you get when someone shares their location on a channel and isn't in your contacts, which is exactly the group-outing case the feature is for. One flag was standing in for two different things: "can be pinged" (needs the whole 32-byte key) and "can be identified" (needs only a 6-byte prefix, which is all a person target ever uses). Those are separate now, so **Set as target** is offered whenever the node has a position: with an identity it follows them as they move, and without one — a channel share, matched by name — it pins the place they were last seen, the same way a waypoint or a location out of a message does. **Navigate** was never restricted and is unchanged.
|
||||
- **Tools › Locator's target picker listed the people pinned to the Favourites Dial as its top tier**, which stopped making sense once pinning and favouriting became separate things — pinning puts something on a home page, and has nothing to say about who you'd geofence. The picker now leads with your **favourites** instead (still offered before they have a known position, so you can arm ahead of time); everyone else with a resolvable position follows, as before.
|
||||
- **Hold Enter no longer doubles as a second Back key.** On Tools, Locator, Live Share, Repeater, Remote Bot, Auto-Advert, GPIO, Compass, the Dashboard config and the Messages navigate view it quietly meant "go back", while on other screens the same gesture opens a context menu — so the same long press did two unrelated things depending on where you were. It now only ever opens a menu (or does nothing where there is none), and Back is the single way back. This also applies inside an open popup, which Hold Enter used to dismiss.
|
||||
|
||||
---
|
||||
|
||||
Reference in New Issue
Block a user