BRouterEnricher via IBRouterService AIDL #27
Labels
No labels
area:companion
area:docs
area:shared
area:tooling
area:watchapp
blocker
kind:chore
kind:feature
kind:spike
kind:test
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
robert/PedalPebble#27
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Goal
The preferred enrichment backend: fully offline, free, no account, no terms-of-service concerns.
Acceptance criteria
IBRouterServicebound, with a clear message when BRouter is not installed and a link to install itlonlatswith a bike profile andturnInstructionModesetTL,TR,KR, ...) mapped to the canonical enumFiles
companion/.../route/enrich/BRouterEnricher.ktNotes
Depends on Spike C. OsmAnd's BRouter adapter is a working reference.
Update — 2026-09-01: the divergence check is mandatory
BRouter is a router, not a map-matcher: given via points it computes its own route under its own
profile, which can differ from the imported line, and a cue sheet describing a route the rider is not
on is the worst failure this app has (D25).
enrichment, and the result rejected above 20 m — falling through to the next tier rather
than being shown
maxRunningTime/ timeout handled as a real outcome: fall through to the next tier, never apartial cue sheet
changes shape and the via-point path becomes the fallback
Update — 2026-09-02: reject per leg, not per route
marked unenriched
NAV_CUE_CONFIDENCEalready travels per cue, so no new plumbing is needed — only the check'sgranularity was wrong
One bad 50 m stretch must not discard a 100 km cue sheet (D41, NFR-P8).