Skip to content

Conversation

mmind
Copy link

@mmind mmind commented May 26, 2025

Some updates for the navigation display coming from having a PineTime strapped to the handlebar off a motorbike and using it for navigation :-) .

  • For one, dark green distance on black background is hard to read, so made it yellow
  • Action-Icon and distance are the values needed at a glance and often, so having them on opposite ends of the screen makes it harder to just glance at them, so swapped distance and narrative element
  • The current layout creates a lot of empty space around the elements, where the PineTime already has a black area in its frame around the display. So moved everything a bit more together, which in turn makes room for a 4th line of narrative, because sometimes the narrative OSMand provides can be a bit unwieldy :-)
  • And lvgl actually provides nice layout alignment variants, so we don't need hardcode some pixel-values from the center, but can instead align elements to each other.

After the change, the display looks like:
navigation-after-reorder

Of course style is always perceived differently, so I'm of course open for suggestions.

@mark9064 mark9064 added enhancement Enhancement to an existing app/feature UI/UX User interface/User experience labels May 26, 2025
Copy link

github-actions bot commented May 27, 2025

Build size and comparison to main:

Section Size Difference
text 375876B 32B
data 948B 0B
bss 22536B 0B

Run in InfiniEmu

@mark9064
Copy link
Member

Rebase to fix build CI, sorry (same for other PRs)

@mmind mmind force-pushed the navigation-style branch from 88a096d to 5a295bb Compare May 27, 2025 23:03
@NeroBurner
Copy link
Contributor

one last rebase please. The GitHub Actions are now fixed. Sorry for the inconvenience

@mmind
Copy link
Author

mmind commented May 29, 2025

one last rebase please. The GitHub Actions are now fixed. Sorry for the inconvenience

No worries. I noticed the base-ref-size change in main, and tried my luck with #2301 first :-)

Heiko Stuebner and others added 4 commits May 29, 2025 22:57
Having the distance in a pretty dark green on a black background is pretty
hard to read, especially in a "I need to make that turn" situation.

So increase the contrast a bit by making it yellow.
The current navigation layout starts from the center of the screen for
flag, narrative and distance.

With the current offsets, this puts the flag in coordinates

    (80,20 - 159,99)

on a 240x240 PineTime display, leaving 20px unused space above it.
If the display of the device is bigger, that unused space would be even
bigger.

With space for navigation information at a premium, lets start a bit of
reorganization to make more room, starting with aligning the flag from
the top and only use 2px of empty space above it.
Use LV_HOR_RES as the size-base for the progress-bar instead of hard-
coding a 200px size. We also don't need to spend valuable screen space
below the bar, so move it down to 2px from the bottom and adjust the
borders on each side to the same distance.
When using the navigation on the road (i.e. on a motorcycle) readability
becomes key. When only a short glance is possible, icon + distance are the
key information, with the narrative being an additional source for when
there is a second more time.

So it makes sense to keep both icon and distance together so the users
eyes don't need to wander across the display.

So move the countdown-distance up near the flag and instead of hard-coding
coordinates, align it 2px below the icon.

Move the narrative text between the distance and progress bar and by making
it the last element in the code, we can profit from the alignment
information of the other elements and set the height calculated from the
position information of distance and progress-bar.

By reducing the slightly excessive spaces between elements, the narrative
gets to be 97px height and can even hold a 4th line of text.
@mmind mmind force-pushed the navigation-style branch from 5a295bb to bc6772d Compare May 29, 2025 20:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement Enhancement to an existing app/feature UI/UX User interface/User experience

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants