Package-level declarations

Types

Link copied to clipboard
interface AdminController

Device configuration and control operations.

Link copied to clipboard
interface AdminEditScope

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.

Link copied to clipboard

Interface for handling admin messages from the mesh (config, metadata, session passkey).

Link copied to clipboard
interface AnalyticsPrefs

Reactive interface for analytics-related preferences.

Link copied to clipboard

Reactive interface for App Functions (system AI integration) preferences.

Link copied to clipboard
interface AppPreferences

Consolidated interface for all application preferences.

Link copied to clipboard

Interface for triggering updates to application widgets.

Link copied to clipboard
interface CommandSender

Interface for sending commands and packets to the mesh network.

Link copied to clipboard

Read-only provider of the canonical app-level connection state.

Link copied to clipboard

Reactive interface for emoji preferences.

Link copied to clipboard
class DataPair(val name: String, val valueIn: Any?)

A key-value pair for sending properties with analytics events.

Link copied to clipboard
Link copied to clipboard

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.

Link copied to clipboard

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.

Link copied to clipboard

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.

Link copied to clipboard
interface DiscoveryPrefs

Reactive interface for Local Mesh Discovery scan preferences.

Link copied to clipboard

Event-firmware display metadata, seeded from the bundled event_firmware.json snapshot.

Link copied to clipboard
interface FileService

Abstracts file system operations (like reading from or writing to URIs) so that ViewModels can remain platform-independent.

Link copied to clipboard
interface FilterPrefs

Reactive interface for message filtering preferences.

Link copied to clipboard
Link copied to clipboard

Interface for dispatching non-packet FromRadio variants to their respective handlers.

Link copied to clipboard

Shared constants for the two-stage mesh handshake protocol.

Link copied to clipboard
interface HistoryManager

Interface for managing store-and-forward history replay requests.

Link copied to clipboard
interface HomoglyphPrefs

Reactive interface for homoglyph encoding preferences.

Link copied to clipboard

Android-specific location object typealias for KMP.

expect class Location

Platform-independent location object for KMP.

actual class Location

JVM placeholder location type for repository smoke compilation.

Link copied to clipboard
Link copied to clipboard
interface LocationService

Abstracts high-level location requests (such as one-off current location) that may require platform-specific permission checks or hardware interactions.

Link copied to clipboard

Coordinates lockdown passphrase authentication for firmware-locked devices.

Link copied to clipboard

Encrypted per-device storage for lockdown passphrases.

Link copied to clipboard
interface MapConsentPrefs

Reactive interface for map consent.

Link copied to clipboard
interface MapPrefs

Reactive interface for general map preferences.

Link copied to clipboard

Reactive interface for map tile provider settings.

Link copied to clipboard
interface MeshBeaconPrefs

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.

Link copied to clipboard
class MeshBeaconRepository(prefs: MeshBeaconPrefs, scope: CoroutineScope)

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).

Link copied to clipboard

Interface for managing the configuration flow, including local node info and metadata.

Link copied to clipboard

Interface for handling device and module configuration updates.

Link copied to clipboard

Interface for managing the connection lifecycle and status with the mesh radio.

Link copied to clipboard
interface MeshDataHandler

Interface for handling incoming mesh data packets and routing them to the appropriate handlers.

Link copied to clipboard

Interface for managing the local node's location updates and reporting.

Link copied to clipboard
interface MeshLogPrefs

Reactive interface for mesh log preferences.

Link copied to clipboard

Repository interface for managing and retrieving logs from the database.

Link copied to clipboard

Interface for processing incoming radio messages and mesh packets.

Link copied to clipboard

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).

Link copied to clipboard
interface MeshPrefs

Reactive interface for mesh connection settings.

Link copied to clipboard

Interface for managing background workers for mesh-related tasks.

Link copied to clipboard
interface MessageFilter

Interface for filtering messages based on user-configured filter words.

Link copied to clipboard
interface MessageQueue

Interface for enqueuing background work for transmitting messages. This allows the domain layer to trigger durable transmission without depending on Android-specific WorkManager.

Link copied to clipboard

Messaging operations — sending data packets, reactions, and shared contacts.

Link copied to clipboard
interface MqttManager

Interface for managing MQTT proxy communication.

Link copied to clipboard

Interface for handling neighbor info responses from the mesh.

Link copied to clipboard

Read-only provider of neighbor info response state.

Link copied to clipboard
interface NodeController

Node management operations — favorite, ignore, mute, and remove nodes.

Link copied to clipboard

Interface for managing the in-memory node database and processing received node information.

Link copied to clipboard
interface NodeRepository

Repository interface for managing node-related data.

Link copied to clipboard
data class Notification(val title: String, val message: String, val type: Notification.Type = Type.Info, val category: Notification.Category = Category.Message, val contactKey: String? = null, val isSilent: Boolean = false, val group: String? = null, val id: Int? = null, val deepLinkUri: String? = null)
Link copied to clipboard

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.

Link copied to clipboard

Reactive interface for notification preferences.

Link copied to clipboard
interface PacketHandler

Interface for handling the transmission of packets to the radio and managing the packet queue.

Link copied to clipboard

Repository interface for managing mesh packets and message history.

Link copied to clipboard

Interface to abstract platform-specific functionalities, primarily for analytics and related services that differ between product flavors.

Link copied to clipboard
interface QueryController

Mesh query operations — position, traceroute, telemetry, user info, and metadata.

Link copied to clipboard
Link copied to clipboard
Link copied to clipboard

Central interface for controlling the radio and mesh network.

Link copied to clipboard

Interface for the low-level radio interface that handles raw byte communication.

Link copied to clipboard
interface RadioPrefs

Reactive interface for radio settings.

Link copied to clipboard
interface RadioTransport

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.

Link copied to clipboard

Narrow callback interface for transport → service communication.

Link copied to clipboard

Creates RadioTransport instances for specific device addresses.

Link copied to clipboard

Encrypted per-node storage for security (public/private) key backups.

Link copied to clipboard

Interface for managing background service state, connection status, and mesh events.

Link copied to clipboard

Write-side interface for service state mutations.

Link copied to clipboard
interface SessionManager

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.

Link copied to clipboard
data class StoredPassphrase(val passphrase: String, val boots: Int, val hours: Int, val maxSessionSeconds: Int = 0)

Stored passphrase entry with associated TTL parameters.

Link copied to clipboard
data class StoredSecurityKeys(val publicKeyBase64: String, val privateKeyBase64: String, val timestamp: Long)

A public/private key pair backed up for a single node, plus when it was saved.

Link copied to clipboard

Interface for handling Store & Forward (legacy) and SF++ packets.

Link copied to clipboard
interface TakPrefs

Reactive interface for TAK server settings.

Link copied to clipboard

Interface for handling telemetry packets from the mesh, including battery notifications.

Link copied to clipboard

Interface for handling traceroute responses from the mesh.

Link copied to clipboard

Read-only provider of traceroute response state.

Link copied to clipboard

Repository interface for managing snapshots of traceroute results.

Link copied to clipboard

Machine-readable transport disconnect causes that need service/UI-specific handling.

Link copied to clipboard
interface UiPrefs

Reactive interface for general UI preferences.

Link copied to clipboard
data class XModemFile(val name: String, val data: ByteArray)

A file received via an XModem transfer from the connected device.

Link copied to clipboard
interface XModemManager

Handles the XModem-CRC receive protocol for file transfers from the connected device.

Properties

Link copied to clipboard
const val SERVICE_NOTIFY_ID: Int = 101

Functions

Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard