Skip to content

roadstrapp.0.4.22.apk

Choose a tag to compare

@roadstrapp roadstrapp released this 18 Aug 21:09
· 4 commits to main since this release

Roadstr 0.4.22

A crash fixed at the root, limited-traffic zones answered street by street, and a new
look for driving.

Fixed

The app could die outright mid-drive

Traced from a captured crash rather than guessed at: a SIGSEGV inside
espeak_TextToPhonemes, faulting two bytes short of a page boundary — the signature of
a buffer running off the end of its page.

The cause was not in this app. The bundled eSpeak NG was 1.52.0, from December 2024, and
twelve memory-safety fixes have landed upstream since — including stack buffer
overflows in number and clause formatting, which is precisely what voice guidance spends
its time reading aloud. 1.52.0 is still upstream's latest tagged release, so the library
is now pinned past those fixes rather than to a release, which is a deliberate trade: the
alternative is shipping a phonemizer that can take the whole app down.

The phonemizer also caps single-word length now. Voice guidance is a convenience;
navigation is not, and no place name is legitimately sixty characters long.

Other fixes

  • The map no longer swings round after a roundabout or a slip road. The heading
    filter deliberately holds a suspect bearing near junctions — that is the protection
    against 180° flips added in 0.4.19 — but a watchdog read that hold as a stuck camera
    and forced the whole accumulated correction through in a fixed 550 ms. The watchdog now
    measures whether the camera is converging, and self-driven rotation is rate-limited so
    no correction, from any source, can outrun the driver reading it.
  • A destination chosen while the GPS is still acquiring is no longer discarded. It is
    saved to recent searches, and the route starts on its own when the position arrives.
  • Faster cold GPS fixes, still without Google. The app asks the receiver to refresh
    its satellite assistance data — downloaded from whatever the device's own
    /etc/gps.conf names, which is the chipset vendor or a privacy-focused ROM's proxy.

Limited traffic zones

Previously the app announced a zone in the vicinity and left it there. Now the warning
follows what is actually happening:

  • Only the stretches of route on a restricted street turn red. The rest keeps its
    colour and the part already driven stays grey — turning the whole line red claimed the
    entire journey was restricted when it is usually a block or two.
  • "You are in a restricted zone" appears only when you are, from the live GPS
    position rather than from the route touching a zone somewhere ahead.
  • Driving past a restricted street shows a yellow notice naming it, so a shortcut
    that looks open is not mistaken for one.
  • Restricted streets near the route are drawn dotted in red.

Crossing a restricted street at a junction is deliberately not treated as entering it:
turning the route red at every such junction would recreate the constant, ignorable alarm
this replaces.

Look and feel

  • Four new themes — modern light and dark, in Nostr Violet and Bitcoin Orange — built
    on a symmetric edge gradient that frames a panel without tinting the text.
  • The route is drawn as a lit line: a bright core between two rails of colour, with a
    soft halo. It works in violet, orange and the restricted-zone red alike.
  • Driving panels float above the map with rounded corners, lit edges and soft
    shadows. The manoeuvre tile and the map controls are lit surfaces rather than flat
    swatches.
  • Time to arrival is now the headline figure, with distance beside it. What a driver
    is deciding depends on how long is left, not on how many kilometres remain.
  • Bicycle routes can be planned from the start, rather than only chosen after a route
    has already been calculated.
  • The roundabout exit number is larger, and no longer clipped on roundabouts with many
    exits.

Under the hood

  • Key derivation for favourites moved off the UI thread, where it blocked for over a
    second on every favourite edit and at every startup.
  • Network failures are typed, so a momentarily busy shared server is retried with backoff
    — honouring its own Retry-After — while a malformed answer is not.

Verifying this release

sha256sum -c SHA256SUMS.txt

All four APKs are signed with the official Roadstr release key, carry versionCode 31, and
contain zero Google classes.