roadstrapp.0.4.24.apk
Roadstr 0.4.24
Directions in every language the app speaks, restricted-zone warnings that mean
something, and the map finally holding still.
Added
Turn-by-turn instructions in all 27 languages
Until this release, exactly two languages had instructions of their own. The builder was a
pair of ternaries on lang == 'it', so the other twenty-five languages the app ships
were navigated in English — not a missing street name, but a driver being given
directions in a language they may not read.
The wording now lives in a phrase table: 24 keys across 27 languages, with English as the
fallback for anything absent. Adding a language is a data change, and a test reads the
locale files from disk to make sure none is left behind.
Instructions name the road — by its number
Instructions say which road they lead onto, and prefer the code over the formal name:
"take the SS3bis", not "Strada Statale 3 bis Tiberina", which appears nowhere on the
road itself. Where a road carries several codes only the first is spoken; reading a list
of synonyms at a junction is worse than naming one of them.
The street you are on
Shown under the manoeuvre panel — for town streets only. A motorway number is already
on every sign and in the panel above; a street name is the thing that is genuinely hard to
know from inside a car in an unfamiliar town. The label sizes itself to the name, and
stays clear of the speed-limit sign beside it.
Fixed
Warnings on streets that were not restricted
The zone search collected every highway=pedestrian way with no check on whether cars
were actually barred. Measured around one Italian historic centre, that was 160 of the
274 ways it returned — and in a dense centre there is almost always a pedestrian alley
within a few metres of a perfectly drivable street, which is how an ordinary road came to
be announced as restricted.
Pedestrian ways now need a restriction like every other class, and zone:traffic no
longer matches urban, which is the ordinary built-up-area tag that sets default speed
limits. Same query, same place: 274 elements before, 115 after.
A warning could stick over the cursor until the app was restarted
The comparison was on the street name, and restricted ways are frequently unnamed —
leaving one meant comparing null with null, which registers as "no change", so it was
never cleared. Compared by identity now.
Warnings also sit clear of the cursor, and can be swiped away: somebody who holds a
permit drives their own restricted street every day, and a warning that cannot be got rid
of is one they stop reading.
The map swinging round
The route's direction was read from the nearest piece of it by distance. At a
roundabout the exit arm passes within metres of the entry arm pointing the opposite way,
so "nearest" happily returned a bearing that contradicted the direction of travel — which
the heading filter then had to argue with, and occasionally lost to.
The segment is now chosen by progress along the route. Progress advances
monotonically, so the entry and exit of the same roundabout are hundreds of metres apart
on it even when they are metres apart on the ground.
Voice guidance
- Chained instructions no longer break mid-sentence. The follow-up clause kept its
capital letter, and the phonemizer reads a capital in the middle of a sentence as the
start of a new one — an audible full stop after "then". - A cue arriving between two others is no longer silently dropped. The queue held one
item, so the middle of three announcements was overwritten and never spoken. - Nothing is cut off in its first 1.3 seconds. Half a word is worse than silence,
because the driver cannot tell whether it mattered. - "Bivio" and similar words are pronounced properly. The phonemes were defensible but
gave the voice one syllable too many; corrected at the phoneme level, so the spelling on
screen is untouched.
Notes on things that turned out not to be bugs
Journey times come from the routing engine, not from this app. Checked against the
same 185 km route: OSRM estimates 2.73 h, Valhalla 2.58 h — agreeing within 6% — and the
OSM data is correct, with maxspeed=90 on 204 of the road's 212 segments. The app
reports what the router says, pro-rata by remaining distance. Inventing a speed model to
beat two mature routers is how you get confidently wrong arrival times.
Verifying this release
sha256sum -c SHA256SUMS.txt
All four APKs are signed with the official Roadstr release key, carry versionCode 33, and
contain zero Google classes.