From ae0bdd9e97fde6be93f638abe6a628f12cee073d Mon Sep 17 00:00:00 2001 From: James Rich <2199651+jamesarich@users.noreply.github.com> Date: Tue, 7 Jul 2026 21:13:38 -0500 Subject: [PATCH] feat(node): histogram of nodes per hop distance (#5745) (#6146) Co-authored-by: Claude Opus 4.8 --- .skills/compose-ui/strings-index.txt | 3 + .../composeResources/values/strings.xml | 3 + .../node/component/NodeHopHistogram.kt | 174 ++++++++++++++++++ .../component/NodeHopHistogramPreviews.kt | 47 +++++ .../feature/node/list/NodeListScreen.kt | 14 ++ .../node/component/NodeHopHistogramTest.kt | 64 +++++++ .../feature/NodeScreenshotTests.kt | 20 ++ ...hotHopHistogramContent_Dark_d19fbf1f_0.png | Bin 0 -> 30525 bytes ...otHopHistogramContent_Light_b29dc7a7_0.png | Bin 0 -> 30312 bytes ...nshotHopHistogramEmpty_Dark_d19fbf1f_0.png | Bin 0 -> 22069 bytes ...shotHopHistogramEmpty_Light_b29dc7a7_0.png | Bin 0 -> 21943 bytes 11 files changed, 325 insertions(+) create mode 100644 feature/node/src/commonMain/kotlin/org/meshtastic/feature/node/component/NodeHopHistogram.kt create mode 100644 feature/node/src/commonMain/kotlin/org/meshtastic/feature/node/component/NodeHopHistogramPreviews.kt create mode 100644 feature/node/src/commonTest/kotlin/org/meshtastic/feature/node/component/NodeHopHistogramTest.kt create mode 100644 screenshot-tests/src/screenshotTestDebug/reference/org/meshtastic/screenshots/feature/NodeScreenshotTestsKt/ScreenshotHopHistogramContent_Dark_d19fbf1f_0.png create mode 100644 screenshot-tests/src/screenshotTestDebug/reference/org/meshtastic/screenshots/feature/NodeScreenshotTestsKt/ScreenshotHopHistogramContent_Light_b29dc7a7_0.png create mode 100644 screenshot-tests/src/screenshotTestDebug/reference/org/meshtastic/screenshots/feature/NodeScreenshotTestsKt/ScreenshotHopHistogramEmpty_Dark_d19fbf1f_0.png create mode 100644 screenshot-tests/src/screenshotTestDebug/reference/org/meshtastic/screenshots/feature/NodeScreenshotTestsKt/ScreenshotHopHistogramEmpty_Light_b29dc7a7_0.png diff --git a/.skills/compose-ui/strings-index.txt b/.skills/compose-ui/strings-index.txt index b9a8d3e5a..58df5e50d 100644 --- a/.skills/compose-ui/strings-index.txt +++ b/.skills/compose-ui/strings-index.txt @@ -10,6 +10,7 @@ a11y_node_offline a11y_node_online a11y_node_role a11y_node_signal +a11y_nodes_at_hop accept acknowledgements ### ACTION ### @@ -713,6 +714,8 @@ hide_layer hide_password history_return_max history_return_window +hop_histogram_empty +hop_histogram_title hop_limit hops_away host diff --git a/core/resources/src/commonMain/composeResources/values/strings.xml b/core/resources/src/commonMain/composeResources/values/strings.xml index 9b97e57fb..11db13fbc 100644 --- a/core/resources/src/commonMain/composeResources/values/strings.xml +++ b/core/resources/src/commonMain/composeResources/values/strings.xml @@ -28,6 +28,7 @@ online role %1$s signal %1$s + Hop %1$d: %2$d nodes Accept Acknowledgements @@ -737,6 +738,8 @@ Hide password History return max History return window + No nodes heard in this window + Nodes per Hop Number of Hops Hops Away Host diff --git a/feature/node/src/commonMain/kotlin/org/meshtastic/feature/node/component/NodeHopHistogram.kt b/feature/node/src/commonMain/kotlin/org/meshtastic/feature/node/component/NodeHopHistogram.kt new file mode 100644 index 000000000..b7003fea0 --- /dev/null +++ b/feature/node/src/commonMain/kotlin/org/meshtastic/feature/node/component/NodeHopHistogram.kt @@ -0,0 +1,174 @@ +/* + * Copyright (c) 2026 Meshtastic LLC + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package org.meshtastic.feature.node.component + +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.ExperimentalLayoutApi +import androidx.compose.foundation.layout.FlowRow +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.widthIn +import androidx.compose.foundation.rememberScrollState +import androidx.compose.foundation.verticalScroll +import androidx.compose.material3.ExperimentalMaterial3Api +import androidx.compose.material3.FilterChip +import androidx.compose.material3.LinearProgressIndicator +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.ModalBottomSheet +import androidx.compose.material3.ProgressIndicatorDefaults +import androidx.compose.material3.Text +import androidx.compose.material3.rememberModalBottomSheetState +import androidx.compose.runtime.Composable +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember +import androidx.compose.runtime.setValue +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.semantics.clearAndSetSemantics +import androidx.compose.ui.semantics.contentDescription +import androidx.compose.ui.semantics.heading +import androidx.compose.ui.semantics.semantics +import androidx.compose.ui.text.style.TextAlign +import androidx.compose.ui.unit.dp +import org.jetbrains.compose.resources.StringResource +import org.jetbrains.compose.resources.stringResource +import org.meshtastic.core.common.util.nowInstant +import org.meshtastic.core.model.Node +import org.meshtastic.core.resources.Res +import org.meshtastic.core.resources.a11y_nodes_at_hop +import org.meshtastic.core.resources.all_time +import org.meshtastic.core.resources.eight_hours +import org.meshtastic.core.resources.hop_histogram_empty +import org.meshtastic.core.resources.hop_histogram_title +import org.meshtastic.core.resources.one_hour +import org.meshtastic.core.resources.twenty_four_hours +import kotlin.time.Duration.Companion.hours + +/** + * 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. + */ +fun hopHistogram(nodes: List, cutoffSecs: Int?): List { + val counts = + nodes + .filter { it.hopsAway >= 0 && (cutoffSecs == null || it.lastHeard >= cutoffSecs) } + .groupingBy { it.hopsAway } + .eachCount() + val maxHop = counts.keys.maxOrNull() ?: return emptyList() + return (0..maxHop).map { counts[it] ?: 0 } +} + +/** + * 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). + */ +@OptIn(ExperimentalMaterial3Api::class) +@Composable +fun NodeHopHistogramSheet(nodes: List, onDismiss: () -> Unit) { + val sheetState = rememberModalBottomSheetState(skipPartiallyExpanded = true) + var window by remember { mutableStateOf(HopWindow.EIGHT_HOURS) } + ModalBottomSheet(onDismissRequest = onDismiss, sheetState = sheetState) { + HopHistogramContent(nodes = nodes, window = window, onSelectWindow = { window = it }) + } +} + +/** Stateless sheet content — split out from [NodeHopHistogramSheet] so it can be previewed without a sheet host. */ +@OptIn(ExperimentalLayoutApi::class) +@Composable +internal fun HopHistogramContent(nodes: List, window: HopWindow, onSelectWindow: (HopWindow) -> Unit) { + val cutoffSecs = + remember(window) { window.hours?.let { (nowInstant.epochSeconds - it.hours.inWholeSeconds).toInt() } } + val buckets = remember(nodes, cutoffSecs) { hopHistogram(nodes, cutoffSecs) } + val maxCount = buckets.maxOrNull() ?: 0 + + Column( + modifier = + Modifier.fillMaxWidth().verticalScroll(rememberScrollState()).padding(horizontal = 24.dp, vertical = 16.dp), + verticalArrangement = Arrangement.spacedBy(16.dp), + ) { + Text( + text = stringResource(Res.string.hop_histogram_title), + style = MaterialTheme.typography.headlineSmall, + modifier = Modifier.semantics { heading() }, + ) + + FlowRow(horizontalArrangement = Arrangement.spacedBy(8.dp)) { + HopWindow.entries.forEach { option -> + FilterChip( + selected = option == window, + onClick = { onSelectWindow(option) }, + label = { Text(stringResource(option.label)) }, + ) + } + } + + if (buckets.isEmpty()) { + Text( + text = stringResource(Res.string.hop_histogram_empty), + style = MaterialTheme.typography.bodyMedium, + color = MaterialTheme.colorScheme.onSurfaceVariant, + ) + } else { + buckets.forEachIndexed { hop, count -> HopBar(hop = hop, count = count, maxCount = maxCount) } + } + } +} + +@Composable +private fun HopBar(hop: Int, count: Int, maxCount: Int) { + // Merge the row into one spoken node so a screen reader announces "Hop 3: 2 nodes" rather than + // reading the hop number, progress-bar percentage, and count as three disjoint elements. + val description = stringResource(Res.string.a11y_nodes_at_hop, hop, count) + Row( + modifier = Modifier.fillMaxWidth().clearAndSetSemantics { contentDescription = description }, + horizontalArrangement = Arrangement.spacedBy(12.dp), + verticalAlignment = Alignment.CenterVertically, + ) { + Text( + text = hop.toString(), + style = MaterialTheme.typography.titleMedium, + textAlign = TextAlign.Center, + modifier = Modifier.widthIn(min = 20.dp), + ) + LinearProgressIndicator( + progress = { if (maxCount > 0) count.toFloat() / maxCount else 0f }, + modifier = Modifier.weight(1f), + trackColor = ProgressIndicatorDefaults.linearTrackColor, + strokeCap = ProgressIndicatorDefaults.LinearStrokeCap, + ) + Text( + text = count.toString(), + style = MaterialTheme.typography.titleMedium, + textAlign = TextAlign.End, + modifier = Modifier.widthIn(min = 28.dp), + ) + } +} + +/** "Last heard" windows offered above the histogram. A `null` [hours] means no time filter (all known nodes). */ +@Suppress("MagicNumber") +enum class HopWindow(val hours: Long?, val label: StringResource) { + ALL(null, Res.string.all_time), + ONE_HOUR(1, Res.string.one_hour), + EIGHT_HOURS(8, Res.string.eight_hours), + ONE_DAY(24, Res.string.twenty_four_hours), +} diff --git a/feature/node/src/commonMain/kotlin/org/meshtastic/feature/node/component/NodeHopHistogramPreviews.kt b/feature/node/src/commonMain/kotlin/org/meshtastic/feature/node/component/NodeHopHistogramPreviews.kt new file mode 100644 index 000000000..a928fff7d --- /dev/null +++ b/feature/node/src/commonMain/kotlin/org/meshtastic/feature/node/component/NodeHopHistogramPreviews.kt @@ -0,0 +1,47 @@ +/* + * Copyright (c) 2026 Meshtastic LLC + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +@file:Suppress("MagicNumber", "PreviewPublic") + +package org.meshtastic.feature.node.component + +import androidx.compose.material3.Surface +import androidx.compose.runtime.Composable +import androidx.compose.runtime.remember +import androidx.compose.ui.tooling.preview.PreviewLightDark +import org.meshtastic.core.model.Node +import org.meshtastic.core.ui.theme.AppTheme + +// A spread of hop distances with hop 4 intentionally missing, to show the preserved zero-count gap. +// Built inside a function (not an eager top-level val) so it can't poison this file's class initializer. +private fun sampleNodes(): List = buildList { + listOf(0 to 8, 1 to 12, 2 to 5, 3 to 2, 5 to 3).forEach { (hop, count) -> + repeat(count) { i -> add(Node(num = hop * 1000 + i, hopsAway = hop)) } + } +} + +@PreviewLightDark +@Composable +fun HopHistogramContentPreview() { + val nodes = remember { sampleNodes() } + AppTheme { Surface { HopHistogramContent(nodes = nodes, window = HopWindow.ALL, onSelectWindow = {}) } } +} + +@PreviewLightDark +@Composable +fun HopHistogramEmptyPreview() { + AppTheme { Surface { HopHistogramContent(nodes = emptyList(), window = HopWindow.ALL, onSelectWindow = {}) } } +} diff --git a/feature/node/src/commonMain/kotlin/org/meshtastic/feature/node/list/NodeListScreen.kt b/feature/node/src/commonMain/kotlin/org/meshtastic/feature/node/list/NodeListScreen.kt index 0e203cfc9..8397df596 100644 --- a/feature/node/src/commonMain/kotlin/org/meshtastic/feature/node/list/NodeListScreen.kt +++ b/feature/node/src/commonMain/kotlin/org/meshtastic/feature/node/list/NodeListScreen.kt @@ -62,6 +62,7 @@ import org.meshtastic.core.model.ConnectionState import org.meshtastic.core.model.NodeListDensity import org.meshtastic.core.resources.Res import org.meshtastic.core.resources.channel_invalid +import org.meshtastic.core.resources.hop_histogram_title import org.meshtastic.core.resources.node_count_template import org.meshtastic.core.resources.node_list_help_title import org.meshtastic.core.resources.nodes @@ -77,6 +78,7 @@ import org.meshtastic.core.ui.component.NodeItemCompact import org.meshtastic.core.ui.component.ScrollToTopEvent import org.meshtastic.core.ui.component.SharedContactDialog import org.meshtastic.core.ui.component.smartScrollToTop +import org.meshtastic.core.ui.icon.BarChart import org.meshtastic.core.ui.icon.Info import org.meshtastic.core.ui.icon.MeshtasticIcons import org.meshtastic.core.ui.icon.NoDevice @@ -84,6 +86,7 @@ import org.meshtastic.core.ui.icon.Nodes import org.meshtastic.core.ui.util.parseDeepLinkOrInvalid import org.meshtastic.feature.node.component.NodeContextMenu import org.meshtastic.feature.node.component.NodeFilterTextField +import org.meshtastic.feature.node.component.NodeHopHistogramSheet import org.meshtastic.feature.node.component.NodeListHelp @Suppress("LongMethod", "CyclomaticComplexMethod") @@ -145,6 +148,11 @@ fun NodeListScreen( NodeListHelp(onDismiss = { showHelpSheet = false }) } + var showHopHistogram by remember { mutableStateOf(false) } + if (showHopHistogram) { + NodeHopHistogramSheet(nodes = unfilteredNodes, onDismiss = { showHopHistogram = false }) + } + var showShareContact by remember { mutableStateOf(false) } if (showShareContact) { SharedContactDialog(contact = ourNode, onDismiss = { showShareContact = false }) @@ -161,6 +169,12 @@ fun NodeListScreen( canNavigateUp = false, onNavigateUp = {}, actions = { + IconButton(onClick = { showHopHistogram = true }) { + Icon( + imageVector = MeshtasticIcons.BarChart, + contentDescription = stringResource(Res.string.hop_histogram_title), + ) + } IconButton(onClick = { showHelpSheet = true }) { Icon( imageVector = MeshtasticIcons.Info, diff --git a/feature/node/src/commonTest/kotlin/org/meshtastic/feature/node/component/NodeHopHistogramTest.kt b/feature/node/src/commonTest/kotlin/org/meshtastic/feature/node/component/NodeHopHistogramTest.kt new file mode 100644 index 000000000..61398eb26 --- /dev/null +++ b/feature/node/src/commonTest/kotlin/org/meshtastic/feature/node/component/NodeHopHistogramTest.kt @@ -0,0 +1,64 @@ +/* + * Copyright (c) 2026 Meshtastic LLC + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package org.meshtastic.feature.node.component + +import org.meshtastic.core.model.Node +import kotlin.test.Test +import kotlin.test.assertEquals + +/** Tests for [hopHistogram] — the pure bucketing behind the nodes-per-hop view. */ +class NodeHopHistogramTest { + + private fun node(hops: Int, lastHeard: Int = 1_000) = + Node(num = hops * 100 + lastHeard, hopsAway = hops, lastHeard = lastHeard) + + @Test + fun empty_input_gives_empty_list() { + assertEquals(emptyList(), hopHistogram(emptyList(), cutoffSecs = null)) + } + + @Test + fun buckets_are_contiguous_and_preserve_middle_gaps() { + val nodes = listOf(node(0), node(0), node(1), node(3)) + // hop 2 has zero nodes but must still appear between 1 and 3 + assertEquals(listOf(2, 1, 0, 1), hopHistogram(nodes, cutoffSecs = null)) + } + + @Test + fun unknown_hops_are_excluded() { + val nodes = listOf(node(-1), node(0), node(-1)) + assertEquals(listOf(1), hopHistogram(nodes, cutoffSecs = null)) + } + + @Test + fun all_unknown_gives_empty_list() { + assertEquals(emptyList(), hopHistogram(listOf(node(-1), node(-1)), cutoffSecs = null)) + } + + @Test + fun cutoff_drops_nodes_heard_before_it() { + val nodes = listOf(node(0, lastHeard = 100), node(0, lastHeard = 500), node(1, lastHeard = 500)) + // cutoff=300 keeps only lastHeard >= 300 + assertEquals(listOf(1, 1), hopHistogram(nodes, cutoffSecs = 300)) + } + + @Test + fun null_cutoff_keeps_everything_regardless_of_last_heard() { + val nodes = listOf(node(0, lastHeard = 0), node(0, lastHeard = 999)) + assertEquals(listOf(2), hopHistogram(nodes, cutoffSecs = null)) + } +} diff --git a/screenshot-tests/src/screenshotTest/kotlin/org/meshtastic/screenshots/feature/NodeScreenshotTests.kt b/screenshot-tests/src/screenshotTest/kotlin/org/meshtastic/screenshots/feature/NodeScreenshotTests.kt index 99b03c6e8..ce5977a87 100644 --- a/screenshot-tests/src/screenshotTest/kotlin/org/meshtastic/screenshots/feature/NodeScreenshotTests.kt +++ b/screenshot-tests/src/screenshotTest/kotlin/org/meshtastic/screenshots/feature/NodeScreenshotTests.kt @@ -21,6 +21,8 @@ import androidx.compose.ui.tooling.preview.PreviewLightDark import com.android.tools.screenshot.PreviewTest import org.meshtastic.feature.node.component.DeviceActionsLocalPreview import org.meshtastic.feature.node.component.DeviceActionsRemotePreview +import org.meshtastic.feature.node.component.HopHistogramContentPreview +import org.meshtastic.feature.node.component.HopHistogramEmptyPreview import org.meshtastic.feature.node.component.NodeDetailsSectionPreview import org.meshtastic.feature.node.component.NodeDetailsSectionSignedPreview import org.meshtastic.feature.node.component.NodeItemCompactActivePreview @@ -215,3 +217,21 @@ fun ScreenshotNodeItemCompleteOnlineRemote() { fun ScreenshotNodeDetailContentMinimal() { NodeDetailContentMinimalPreview() } + +// --------------------------------------------------------------------------- +// Nodes-per-hop histogram (issue #5745) +// --------------------------------------------------------------------------- + +@PreviewTest +@PreviewLightDark +@Composable +fun ScreenshotHopHistogramContent() { + HopHistogramContentPreview() +} + +@PreviewTest +@PreviewLightDark +@Composable +fun ScreenshotHopHistogramEmpty() { + HopHistogramEmptyPreview() +} diff --git a/screenshot-tests/src/screenshotTestDebug/reference/org/meshtastic/screenshots/feature/NodeScreenshotTestsKt/ScreenshotHopHistogramContent_Dark_d19fbf1f_0.png b/screenshot-tests/src/screenshotTestDebug/reference/org/meshtastic/screenshots/feature/NodeScreenshotTestsKt/ScreenshotHopHistogramContent_Dark_d19fbf1f_0.png new file mode 100644 index 0000000000000000000000000000000000000000..98dcc445ae2246c48f31ed920f7d1bb7fd84faad GIT binary patch literal 30525 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 QE-cR-4ZWX>Z$5nXZ@%RL3;+NC literal 0 HcmV?d00001 diff --git a/screenshot-tests/src/screenshotTestDebug/reference/org/meshtastic/screenshots/feature/NodeScreenshotTestsKt/ScreenshotHopHistogramContent_Light_b29dc7a7_0.png b/screenshot-tests/src/screenshotTestDebug/reference/org/meshtastic/screenshots/feature/NodeScreenshotTestsKt/ScreenshotHopHistogramContent_Light_b29dc7a7_0.png new file mode 100644 index 0000000000000000000000000000000000000000..9f2d855e98aad1a27b088e79d7b387a409b0bfa8 GIT binary patch literal 30312 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 Z%cVWI&WcYFm=W7An)*K%UH|pje*rng&}{$! literal 0 HcmV?d00001 diff --git a/screenshot-tests/src/screenshotTestDebug/reference/org/meshtastic/screenshots/feature/NodeScreenshotTestsKt/ScreenshotHopHistogramEmpty_Dark_d19fbf1f_0.png b/screenshot-tests/src/screenshotTestDebug/reference/org/meshtastic/screenshots/feature/NodeScreenshotTestsKt/ScreenshotHopHistogramEmpty_Dark_d19fbf1f_0.png new file mode 100644 index 0000000000000000000000000000000000000000..91a7c876df429593dea540e96155294579cd2d9c GIT binary patch literal 22069 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 literal 0 HcmV?d00001 diff --git a/screenshot-tests/src/screenshotTestDebug/reference/org/meshtastic/screenshots/feature/NodeScreenshotTestsKt/ScreenshotHopHistogramEmpty_Light_b29dc7a7_0.png b/screenshot-tests/src/screenshotTestDebug/reference/org/meshtastic/screenshots/feature/NodeScreenshotTestsKt/ScreenshotHopHistogramEmpty_Light_b29dc7a7_0.png new file mode 100644 index 0000000000000000000000000000000000000000..795a9ca244dce1015d24583c636e5c7f10935909 GIT binary patch literal 21943 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 literal 0 HcmV?d00001