Package-level declarations
Types
Device configuration and control operations.
Configuration operations valid inside an AdminController.editSettings transaction, scoped to a single destination node so callers don't repeat the node number or manage packet IDs. Mirrors the SDK's AdminEdit.
Interface for handling admin messages from the mesh (config, metadata, session passkey).
Reactive interface for analytics-related preferences.
Reactive interface for App Functions (system AI integration) preferences.
Consolidated interface for all application preferences.
Interface for triggering updates to application widgets.
Interface for sending commands and packets to the mesh network.
Read-only provider of the canonical app-level connection state.
Reactive interface for emoji preferences.
Provides msh.to device links resolved by the Meshtastic API (/resource/deviceLinks) and cached locally. Vendor and region-filtered marketplace links are shown on the device hardware detail view, plus a full directory.
Interface for collecting packets during an active discovery scan. The scan engine implements this interface and registers/unregisters with the packet handler to receive packets during dwell windows.
Registry for discovery packet collectors. The scan engine registers itself when a scan starts and unregisters when it stops. The packet handler checks for an active collector and forwards packets to it.
Reactive interface for Local Mesh Discovery scan preferences.
Event-firmware display metadata, seeded from the bundled event_firmware.json snapshot.
Abstracts file system operations (like reading from or writing to URIs) so that ViewModels can remain platform-independent.
Reactive interface for message filtering preferences.
Interface for dispatching non-packet FromRadio variants to their respective handlers.
Shared constants for the two-stage mesh handshake protocol.
Interface for managing store-and-forward history replay requests.
Reactive interface for homoglyph encoding preferences.
Android-specific location object typealias for KMP.
Platform-independent location object for KMP.
JVM placeholder location type for repository smoke compilation.
Abstracts high-level location requests (such as one-off current location) that may require platform-specific permission checks or hardware interactions.
Coordinates lockdown passphrase authentication for firmware-locked devices.
Encrypted per-device storage for lockdown passphrases.
Reactive interface for map consent.
Reactive interface for map tile provider settings.
Reactive persistence for received Mesh Beacon invitations. Records are opaque, self-describing strings (see MeshBeaconOffer.encode) so this prefs layer stays free of proto/model types.
Holds Mesh Beacon invitations received from other meshes. Beacons are advisory, zero-hop advertisements — not messages or contacts — so they live in the Discovery surface, which presents them for the user to Discover / Join / Dismiss. The list is capped and deduped in memory (the source of truth) and written through to MeshBeaconPrefs so invitations survive an app restart until the user explicitly dismisses them (Apple 014-mesh-beacons FR-015).
Interface for managing the configuration flow, including local node info and metadata.
Interface for handling device and module configuration updates.
Interface for managing the connection lifecycle and status with the mesh radio.
Interface for handling incoming mesh data packets and routing them to the appropriate handlers.
Interface for managing the local node's location updates and reporting.
Reactive interface for mesh log preferences.
Repository interface for managing and retrieving logs from the database.
Interface for processing incoming radio messages and mesh packets.
Mesh-domain notification builder. Provides high-level operations for the message arrival, waypoint, reaction, new node, low-battery, and client notification flows specific to this app. Implementations are expected to render the platform notification themselves; the generic dispatch primitive is NotificationManager (which posts/cancels opaque Notification records and is not domain-aware).
Interface for managing background workers for mesh-related tasks.
Interface for filtering messages based on user-configured filter words.
Interface for enqueuing background work for transmitting messages. This allows the domain layer to trigger durable transmission without depending on Android-specific WorkManager.
Messaging operations — sending data packets, reactions, and shared contacts.
Interface for managing MQTT proxy communication.
Interface for handling neighbor info responses from the mesh.
Read-only provider of neighbor info response state.
Node management operations — favorite, ignore, mute, and remove nodes.
Interface for managing the in-memory node database and processing received node information.
Repository interface for managing node-related data.
Platform-agnostic notification dispatch primitive. Posts opaque Notification records, cancels by id, or wipes all active notifications. Intended as the lowest layer of the notification stack.
Reactive interface for notification preferences.
Interface for handling the transmission of packets to the radio and managing the packet queue.
Repository interface for managing mesh packets and message history.
Interface to abstract platform-specific functionalities, primarily for analytics and related services that differ between product flavors.
Mesh query operations — position, traceroute, telemetry, user info, and metadata.
Central interface for controlling the radio and mesh network.
Interface for the low-level radio interface that handles raw byte communication.
Reactive interface for radio settings.
Interface for hardware transports (BLE, Serial, TCP, etc.) that handles raw byte communication. This is the KMP-compatible replacement for the legacy Android-specific IRadioInterface.
Narrow callback interface for transport → service communication.
Creates RadioTransport instances for specific device addresses.
Encrypted per-node storage for security (public/private) key backups.
Interface for managing background service state, connection status, and mesh events.
Write-side interface for service state mutations.
Owns per-node remote-administration session state — the session passkey the firmware embeds in every admin response and the timestamp it was last refreshed at.
Stored passphrase entry with associated TTL parameters.
A public/private key pair backed up for a single node, plus when it was saved.
Interface for handling Store & Forward (legacy) and SF++ packets.
Interface for handling telemetry packets from the mesh, including battery notifications.
Interface for handling traceroute responses from the mesh.
Read-only provider of traceroute response state.
Repository interface for managing snapshots of traceroute results.
Machine-readable transport disconnect causes that need service/UI-specific handling.
A file received via an XModem transfer from the connected device.
Handles the XModem-CRC receive protocol for file transfers from the connected device.