Package-level declarations

Types

Link copied to clipboard

Utility object for chart styling and component creation. Provides reusable styled lines, points, and axes for Vico charts.

Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
data class EnvironmentGraphingData(val metrics: List<ERROR CLASS: Symbol not found for Telemetry>, val shouldPlot: List<Boolean>, val leftMinMax: ERROR CLASS: Symbol not found for Pair<kotlin/Float, kotlin/Float> = Pair(0f, 0f), val rightMinMax: ERROR CLASS: Symbol not found for Pair<kotlin/Float, kotlin/Float> = Pair(0f, 0f), val times: ERROR CLASS: Symbol not found for Pair<kotlin/Int, kotlin/Int> = Pair(0, 0))
Link copied to clipboard
data class EnvironmentMetricsState(val environmentMetrics: List<ERROR CLASS: Symbol not found for Telemetry> = emptyList())
Link copied to clipboard
data class InfoDialogData(val titleRes: ERROR CLASS: Symbol not found for StringResource, val definitionRes: ERROR CLASS: Symbol not found for StringResource, val color: ERROR CLASS: Symbol not found for Color)
Link copied to clipboard
data class LegendData(val nameRes: ERROR CLASS: Symbol not found for StringResource, val color: ERROR CLASS: Symbol not found for Color, val isLine: Boolean = false, val environmentMetric: Environment? = null)
Link copied to clipboard
open class MetricsViewModel(val destNum: Int, dispatchers: ERROR CLASS: Symbol not found for CoroutineDispatchers, meshLogRepository: ERROR CLASS: Symbol not found for MeshLogRepository, serviceRepository: ERROR CLASS: Symbol not found for ServiceRepository, nodeRepository: ERROR CLASS: Symbol not found for NodeRepository, tracerouteSnapshotRepository: ERROR CLASS: Symbol not found for TracerouteSnapshotRepository, nodeRequestActions: NodeRequestActions, alertManager: ERROR CLASS: Symbol not found for AlertManager, getNodeDetailsUseCase: GetNodeDetailsUseCase) : <ERROR CLASS> ERROR CLASS: Symbol not found for ViewModel

ViewModel responsible for managing and graphing metrics (telemetry, signal strength, paxcount) for a specific node.

Properties

Link copied to clipboard
const val BYTES_IN_GB: Double
Link copied to clipboard
const val BYTES_IN_KB: Double = 1024.0
Link copied to clipboard
const val BYTES_IN_MB: Double
Link copied to clipboard
const val DEG_D: Double = 1.0E-7
Link copied to clipboard
const val HEADING_DEG: Double = 1.0E-5

Functions

Link copied to clipboard
fun AdaptiveMetricLayout(chartPart: (ERROR CLASS: Symbol not found for Modifier) -> Unit, listPart: (ERROR CLASS: Symbol not found for Modifier) -> Unit, modifier: ERROR CLASS: Symbol not found for Modifier = Modifier)

An adaptive layout for metric screens. Uses a split Row for wide screens (tablets/landscape) and a stacked Column for narrow screens (phones).

Link copied to clipboard
fun <T> BaseMetricScreen(onNavigateUp: () -> Unit, telemetryType: ERROR CLASS: Symbol not found for TelemetryType??, titleRes: ERROR CLASS: Symbol not found for StringResource, nodeName: String, data: List<T>, timeProvider: (T) -> Double, infoData: List<InfoDialogData> = emptyList(), snackbarHostState: ERROR CLASS: Symbol not found for SnackbarHostState = remember { SnackbarHostState() }, onRequestTelemetry: () -> Unit? = null, chartPart: (ERROR CLASS: Symbol not found for Modifier, Double?, ERROR CLASS: Symbol not found for VicoScrollState, (Double) -> Unit) -> Unit, listPart: (ERROR CLASS: Symbol not found for Modifier, Double?, ERROR CLASS: Symbol not found for LazyListState, (Double) -> Unit) -> Unit, controlPart: () -> Unit = {})

A high-level template for metric screens that handles the Scaffold, AppBar, adaptive layout, and synchronization.

Link copied to clipboard
fun DeleteItem(onClick: () -> Unit)
Link copied to clipboard
fun DeviceMetricsScreen(viewModel: MetricsViewModel, onNavigateUp: () -> Unit)
Link copied to clipboard
fun EnvironmentMetricsChart(modifier: ERROR CLASS: Symbol not found for Modifier = Modifier, telemetries: List<ERROR CLASS: Symbol not found for Telemetry>, graphData: EnvironmentGraphingData, vicoScrollState: ERROR CLASS: Symbol not found for VicoScrollState, selectedX: Double?, onPointSelected: (Double) -> Unit)
Link copied to clipboard
fun EnvironmentMetricsScreen(viewModel: MetricsViewModel, onNavigateUp: () -> Unit)
Link copied to clipboard
fun formatBytes(bytes: Long, decimalPlaces: Int = 2): String
Link copied to clipboard
fun GenericMetricChart(modelProducer: ERROR CLASS: Symbol not found for CartesianChartModelProducer, layers: List<ERROR CLASS: Symbol not found for LineCartesianLayer>, modifier: ERROR CLASS: Symbol not found for Modifier = Modifier, startAxis: ERROR CLASS: Symbol not found for VerticalAxis<ERROR CLASS: Symbol not found for Axis.Position.Vertical.Start>?? = null, endAxis: ERROR CLASS: Symbol not found for VerticalAxis<ERROR CLASS: Symbol not found for Axis.Position.Vertical.End>?? = null, bottomAxis: ERROR CLASS: Symbol not found for HorizontalAxis<ERROR CLASS: Symbol not found for Axis.Position.Horizontal.Bottom>?? = null, marker: ERROR CLASS: Symbol not found for CartesianMarker?? = null, selectedX: Double? = null, onPointSelected: (Double) -> Unit? = null, vicoScrollState: ERROR CLASS: Symbol not found for VicoScrollState = rememberVicoScrollState())

A generic chart host for Meshtastic metric charts. Handles common boilerplate for markers, scrolling, and point selection synchronization.

Link copied to clipboard
fun HostMetricsItem(modifier: ERROR CLASS: Symbol not found for Modifier = Modifier, telemetry: ERROR CLASS: Symbol not found for Telemetry)
Link copied to clipboard
fun HostMetricsLogScreen(metricsViewModel: MetricsViewModel, onNavigateUp: () -> Unit)
Link copied to clipboard
fun Legend(legendData: List<LegendData>, modifier: ERROR CLASS: Symbol not found for Modifier = Modifier)

Creates the legend that identifies the colors used for the graph.

Link copied to clipboard
fun LegendInfoDialog(infoData: List<InfoDialogData>, onDismiss: () -> Unit)

Displays a dialog with information about the legend items.

Link copied to clipboard
fun LogLine(modifier: ERROR CLASS: Symbol not found for Modifier = Modifier, label: String, value: String)
Link copied to clipboard
fun MetricIndicator(color: ERROR CLASS: Symbol not found for Color, modifier: ERROR CLASS: Symbol not found for Modifier = Modifier)
Link copied to clipboard
fun MetricLogItem(icon: ERROR CLASS: Symbol not found for ImageVector, text: String, contentDescription: String, modifier: ERROR CLASS: Symbol not found for Modifier = Modifier)

Shared metric log/list UI components used by TracerouteLog, NeighborInfoLog, HostMetricsLog, and PositionLog.

Link copied to clipboard
fun NeighborInfoLogScreen(modifier: ERROR CLASS: Symbol not found for Modifier = Modifier, viewModel: MetricsViewModel, onNavigateUp: () -> Unit)
Link copied to clipboard
fun PaxcountInfo(pax: String, modifier: ERROR CLASS: Symbol not found for Modifier = Modifier, contentColor: ERROR CLASS: Symbol not found for Color = MaterialTheme.colorScheme.onSurface)
Link copied to clipboard
fun PaxMetricsItem(log: ERROR CLASS: Symbol not found for MeshLog, pax: ERROR CLASS: Symbol not found for ProtoPaxcount, isSelected: Boolean, onClick: () -> Unit)
Link copied to clipboard
fun PaxMetricsScreen(metricsViewModel: MetricsViewModel, onNavigateUp: () -> Unit)
Link copied to clipboard
fun PositionItem(compactWidth: Boolean, position: ERROR CLASS: Symbol not found for Position, system: ERROR CLASS: Symbol not found for Config.DisplayConfig.DisplayUnits)
Link copied to clipboard
fun ERROR CLASS: Symbol not found for ColumnScope.PositionList(compactWidth: Boolean, positions: List<ERROR CLASS: Symbol not found for Position>, displayUnits: ERROR CLASS: Symbol not found for Config.DisplayConfig.DisplayUnits)
Link copied to clipboard
fun PositionLogHeader(compactWidth: Boolean)
Link copied to clipboard
fun PositionLogScreen(viewModel: MetricsViewModel, onNavigateUp: () -> Unit)
Link copied to clipboard
fun PowerMetricsScreen(viewModel: MetricsViewModel, onNavigateUp: () -> Unit)
Link copied to clipboard
fun ERROR CLASS: Symbol not found for HardwareModel.safeNumber(fallbackValue: Int = -1): Int

Safely extracts the hardware model number from a HardwareModel enum.

Link copied to clipboard
fun SignalMetricsScreen(viewModel: MetricsViewModel, onNavigateUp: () -> Unit)
Link copied to clipboard
fun TimeFrameSelector(selectedTimeFrame: TimeFrame, availableTimeFrames: List<TimeFrame>, onTimeFrameSelected: (TimeFrame) -> Unit, modifier: ERROR CLASS: Symbol not found for Modifier = Modifier)
Link copied to clipboard
fun TracerouteLogScreen(modifier: ERROR CLASS: Symbol not found for Modifier = Modifier, viewModel: MetricsViewModel, onNavigateUp: () -> Unit, onViewOnMap: (requestId: Int, responseLogUuid: String) -> Unit = { _, _ -> })
Link copied to clipboard
fun TracerouteMapScreen(metricsViewModel: MetricsViewModel, requestId: Int, logUuid: String? = null, onNavigateUp: () -> Unit)