Package-level declarations
Types
One entry in the BasemapMenu.
One node in a cluster the map cannot zoom apart.
What the map's filter menu can do.
A planner session and, for Node Details routes, the node whose location shortcut it must retain.
Transmitter parameters for a Meshtastic Site Planner coverage estimate. Maps onto the planner's flat query contract (?lat=&lon=&name=&tx_power=&tx_freq=&tx_height=&tx_gain=), so toQueryUrl can hand a configured, auto-running view to the planner without knowing its internal parameter schema.
Properties
Functions
The menu that picks what the map draws underneath the mesh.
Lists the nodes sharing one spot, when zooming in further will not separate them.
Waypoint removal confirmation, shared by both map flavors. Confirming always drops our local copy — that needs no mesh-wide permission, so it stays available for a waypoint locked to another node. Broadcasting the removal to the mesh is the opt-in checkbox, offered only when canDeleteForEveryone (unlocked or locked to us, and connected).
Waypoint locked to another node (or offline): confirming removes only our local copy.
Waypoint we may modify mesh-wide while connected: the broadcast opt-in is offered.
Shared waypoint editor used by both the google and fdroid map flavors (DRY — replaces the two drifted per-flavor copies). Map-engine-specific concerns stay outside: drawing the box overlay and the drag-to-define gesture are triggered via onBeginBoxAuthoring, which hands the current draft back to the flavor's map so the user can define the bounding box there; the flavor re-opens this dialog with the drawn box applied.
The tag a layer's opacity slider carries, so a test can find the slider for one specific layer.
A compact icon button used in map control overlays. Uses FilledIconButton for a consistent, compact appearance across both Google and F-Droid flavors.
Shared map controls overlay using HorizontalFloatingToolbar for Material 3 Expressive styling. Provides compass, filter button, location tracking button, and optional slots for flavor-specific content (map type selector, layers, refresh).
The standard wiring from a view model to MapFilterSheet.
The main map's filters.
Zoom in and out, stacked, for the corner of a map.
The filter menu for one node's position track.
The tag the chip for one role carries, so a test can pick out a single role.
The Site Planner as a form that hands the finished parameters to the system browser.
Bottom-sheet form for a Site Planner coverage estimate, pre-filled with initial. onSubmit receives the edited params once they validate. Location shortcut chips (onUseCurrentLocation/onUseNodeLocation/onUseMapCenter) re-seed the coordinate fields when provided, preserving edits to the other fields.
Seed Site Planner params from a node (name + position) and, when a radio is connected, from its actual config: transmit frequency (from the primary channel), transmit power (dBm→W), and a receiver sensitivity derived from the modem preset. Antenna gain/height aren't in the device config, so they keep the planner's stock defaults.
Read-only view of a geofence waypoint the local device did NOT create. Editing/re-broadcasting someone else's geofence is not offered here; the one interactive control is the receiver-local opt-in that decides whether THIS device raises crossing notifications for it (foreign geofences are silent by default — see org.meshtastic.core.data.manager .GeofenceMonitor). Reached for both locked and unlocked foreign geofences, so the locked case gets a view at all. Unlocked foreign geofences are still editable — onEdit, when non-null, opens the full editor. onDeleteForMe drops only our local copy, so it needs no mesh-wide permission and is offered even when the geofence is locked to its creator.
Unlocked foreign geofence: opted in, with the Edit affordance into the full editor.
Locked foreign geofence: opt-in off, no Edit affordance — but the local delete is still offered.