Skip to content

Expose an optional completed-render-frame callback through Android navigation views #950

Description

@fiaker-codex

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions