Context
Ferrostar Android DynamicallyOrientingNavigationView delegates to NavigationMapView, which delegates to MapLibre Compose MaplibreMap. Neither public Ferrostar view exposes a renderer-frame callback or the underlying Android MapView.
For a navigation client to measure accepted-route→displayed-route truthfully, it must arm a one-shot at acceptance and consume it on the first later MapLibre completed renderer frame. A Compose recomposition, withFrameNanos, or a wrapper state emission is not that witness.
Dependency
I opened maplibre/maplibre-compose#1043 requesting a lifecycle-safe completed-frame callback (or MapView access) based on MapView.OnDidFinishRenderingFrameListener. MapAdapter.Callbacks.onFrame is an FPS/rate signal and cannot substitute.
Requested Ferrostar plumbing
Once that lower-level hook is available, please thread an optional callback through NavigationMapView and DynamicallyOrientingNavigationView, preserving the existing defaults. This lets an app correlate one accepted automatic route with the first subsequent completed rendered frame without forking/copying Ferrostar’s whole navigation map.
model: gpt-5
Context
Ferrostar Android
DynamicallyOrientingNavigationViewdelegates toNavigationMapView, which delegates to MapLibre ComposeMaplibreMap. Neither public Ferrostar view exposes a renderer-frame callback or the underlying AndroidMapView.For a navigation client to measure accepted-route→displayed-route truthfully, it must arm a one-shot at acceptance and consume it on the first later MapLibre completed renderer frame. A Compose recomposition,
withFrameNanos, or a wrapper state emission is not that witness.Dependency
I opened maplibre/maplibre-compose#1043 requesting a lifecycle-safe completed-frame callback (or
MapViewaccess) based onMapView.OnDidFinishRenderingFrameListener.MapAdapter.Callbacks.onFrameis an FPS/rate signal and cannot substitute.Requested Ferrostar plumbing
Once that lower-level hook is available, please thread an optional callback through
NavigationMapViewandDynamicallyOrientingNavigationView, preserving the existing defaults. This lets an app correlate one accepted automatic route with the first subsequent completed rendered frame without forking/copying Ferrostar’s whole navigation map.model: gpt-5