Package-level declarations

Types

Link copied to clipboard

"Last heard" windows offered above the histogram. A null hours means no time filter (all known nodes).

Link copied to clipboard
data class NodeFilterToggles(val includeUnknown: Boolean, val onToggleIncludeUnknown: () -> Unit, val excludeInfrastructure: Boolean, val onToggleExcludeInfrastructure: () -> Unit, val onlyOnline: Boolean, val onToggleOnlyOnline: () -> Unit, val onlyDirect: Boolean, val onToggleOnlyDirect: () -> Unit, val showIgnored: Boolean, val onToggleShowIgnored: () -> Unit, val ignoredNodeCount: Int, val excludeMqtt: Boolean, val onToggleExcludeMqtt: () -> Unit)
Link copied to clipboard
sealed class NodeMenuAction

Functions

Link copied to clipboard
fun AdministrationSection(node: Node, metricsState: MetricsState, onAction: (NodeDetailAction) -> Unit, onFirmwareSelect: (FirmwareRelease) -> Unit, sessionStatus: SessionStatus, isEnsuringSession: Boolean, modifier: Modifier = Modifier)
Link copied to clipboard
fun AirQualityInfo(iaq: String, modifier: Modifier = Modifier, contentColor: Color = MaterialTheme.colorScheme.onSurface)
Link copied to clipboard
fun ChannelInfo(channel: Int, modifier: Modifier = Modifier, contentColor: Color = MaterialTheme.colorScheme.onSurface)
Link copied to clipboard
fun CompassSheetContent(uiState: CompassUiState, onRequestLocationPermission: () -> Unit, onOpenLocationSettings: () -> Unit, onRequestPosition: () -> Unit, modifier: Modifier = Modifier)
Link copied to clipboard
fun CooldownIconButton(onClick: () -> Unit, cooldownTimestamp: Long?, modifier: Modifier = Modifier, cooldownDuration: Long = COOL_DOWN_TIME_MS, content: @Composable () -> Unit)
Link copied to clipboard
fun CooldownOutlinedIconButton(onClick: () -> Unit, cooldownTimestamp: Long?, modifier: Modifier = Modifier, cooldownDuration: Long = COOL_DOWN_TIME_MS, content: @Composable () -> Unit)
Link copied to clipboard
fun DeviceActions(node: Node, ourNode: Node?, lastTracerouteTime: Long?, lastRequestNeighborsTime: Long?, availableLogs: Set<LogsType>, onAction: (NodeDetailAction) -> Unit, displayUnits: Config.DisplayConfig.DisplayUnits, isFahrenheit: Boolean, modifier: Modifier = Modifier, isLocal: Boolean = false, airQualityHistory: List<Telemetry> = emptyList())
Link copied to clipboard
fun DeviceLinksSection(links: List<DeviceLink>, modifier: Modifier = Modifier)

Collapsible "I want one" section listing msh.to vendor/variant and marketplace links for the viewed device. Renders nothing when there are no matching links. Ported from the Meshtastic-Apple DeviceLinksSection.

Link copied to clipboard
fun DistanceInfo(distance: String, modifier: Modifier = Modifier, contentColor: Color = MaterialTheme.colorScheme.onSurface)
Link copied to clipboard
fun ElevationInfo(modifier: Modifier = Modifier, altitude: Int, system: Config.DisplayConfig.DisplayUnits, suffix: String = stringResource(Res.string.elevation_suffix), contentColor: Color = MaterialTheme.colorScheme.onSurface)
Link copied to clipboard
fun FirmwareReleaseSheetContent(firmwareRelease: FirmwareRelease, modifier: Modifier = Modifier)
Link copied to clipboard
fun HardwareInfo(hwModel: String, modifier: Modifier = Modifier, contentColor: Color = MaterialTheme.colorScheme.onSurface)
Link copied to clipboard
fun hopHistogram(nodes: List<Node>, cutoffSecs: Int?): List<Int>

Counts nodes at each hop distance, as a list indexed by hop (element 0 = direct nodes). The list is contiguous from hop 0 up to the furthest hop observed, so zero-count gaps in the middle are preserved. Nodes with an unknown hop (hopsAway < 0) are excluded. When cutoffSecs is non-null, only nodes with lastHeard >= cutoffSecs are counted. Returns an empty list when nothing qualifies.

Link copied to clipboard
fun HopsInfo(hops: Int, modifier: Modifier = Modifier, contentColor: Color = MaterialTheme.colorScheme.onSurface)
Link copied to clipboard
fun HumidityInfo(humidity: String, modifier: Modifier = Modifier, contentColor: Color = MaterialTheme.colorScheme.onSurface)
Link copied to clipboard
fun IconInfo(icon: ImageVector, contentDescription: String, modifier: Modifier = Modifier, label: String? = null, text: String? = null, style: TextStyle = MaterialTheme.typography.labelMedium, contentColor: Color = MaterialTheme.colorScheme.onSurface, content: @Composable () -> Unit = {})
Link copied to clipboard
fun InfoCard(text: String, value: String, modifier: Modifier = Modifier, icon: ImageVector? = null, iconRes: DrawableResource? = null, rotateIcon: Float = 0.0f, valueColor: Color = MaterialTheme.colorScheme.onSurface)
Link copied to clipboard
fun LastHeardInfo(modifier: Modifier = Modifier, lastHeard: Int, showLabel: Boolean = true, contentColor: Color = MaterialTheme.colorScheme.onSurface)
Link copied to clipboard
fun LinkedCoordinatesItem(node: Node, displayUnits: Config.DisplayConfig.DisplayUnits = Config.DisplayConfig.DisplayUnits.METRIC)
Link copied to clipboard
fun NodeContextMenu(expanded: Boolean, node: Node, onFavorite: () -> Unit, onMute: () -> Unit, onMessage: () -> Unit, onTraceRoute: () -> Unit, onIgnore: () -> Unit, onRemove: () -> Unit, onDismiss: () -> Unit)

Shared context menu for node actions (favorite, mute, message, trace route, ignore, remove).

Link copied to clipboard
fun NodeDetailsSection(node: Node, modifier: Modifier = Modifier, deviceHardware: DeviceHardware? = null, reportedTarget: String? = null)
Link copied to clipboard
fun NodeFilterTextField(modifier: Modifier = Modifier, filterText: String, onTextChange: (String) -> Unit, currentSortOption: NodeSortOption, onSortSelect: (NodeSortOption) -> Unit, includeUnknown: Boolean, onToggleIncludeUnknown: () -> Unit, excludeInfrastructure: Boolean, onToggleExcludeInfrastructure: () -> Unit, onlyOnline: Boolean, onToggleOnlyOnline: () -> Unit, onlyDirect: Boolean, onToggleOnlyDirect: () -> Unit, showIgnored: Boolean, onToggleShowIgnored: () -> Unit, ignoredNodeCount: Int, excludeMqtt: Boolean, onToggleExcludeMqtt: () -> Unit)
Link copied to clipboard
fun NodeHopHistogramSheet(nodes: List<Node>, onDismiss: () -> Unit)

Bottom sheet showing how many mesh nodes sit at each hop distance, filtered to a "last heard" HopWindow. Gives a quick sense of how busy and dispersed the local mesh is (see issue #5745).

Link copied to clipboard
fun NodeIdInfo(id: String, modifier: Modifier = Modifier, contentColor: Color = MaterialTheme.colorScheme.onSurface)
Link copied to clipboard
Link copied to clipboard
fun NodeListHelp(onDismiss: () -> Unit)
Link copied to clipboard
fun NotesSection(node: Node, onSaveNotes: (Int, String) -> Unit, modifier: Modifier = Modifier)
Link copied to clipboard
fun PaxcountInfo(pax: String, modifier: Modifier = Modifier, contentColor: Color = MaterialTheme.colorScheme.onSurface)
Link copied to clipboard
fun PowerInfo(value: String, modifier: Modifier = Modifier, label: String? = null, contentColor: Color = MaterialTheme.colorScheme.onSurface)
Link copied to clipboard
fun RoleInfo(role: String, modifier: Modifier = Modifier, contentColor: Color = MaterialTheme.colorScheme.onSurface)
Link copied to clipboard
fun SatelliteCountInfo(modifier: Modifier = Modifier, satCount: Int, contentColor: Color = MaterialTheme.colorScheme.onSurface)
Link copied to clipboard
fun SoilMoistureInfo(moisture: String, modifier: Modifier = Modifier, contentColor: Color = MaterialTheme.colorScheme.onSurface)
Link copied to clipboard
fun SoilTemperatureInfo(temp: String, modifier: Modifier = Modifier, contentColor: Color = MaterialTheme.colorScheme.onSurface)
Link copied to clipboard
fun TemperatureInfo(temp: String, modifier: Modifier = Modifier, contentColor: Color = MaterialTheme.colorScheme.onSurface)