Package-level declarations
Types
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.
Functions
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.
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).
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.
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.