From 55ea28bf8b738c21d763f25b540b30418e95a83f Mon Sep 17 00:00:00 2001 From: James Rich <2199651+jamesarich@users.noreply.github.com> Date: Tue, 30 Jun 2026 10:06:47 -0500 Subject: [PATCH] fix(discovery): show disabled reason below Start Analysis button (#6027) Co-authored-by: Claude Sonnet 4.6 --- .../discovery/ui/DiscoveryScanScreen.kt | 20 ++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/feature/discovery/src/commonMain/kotlin/org/meshtastic/feature/discovery/ui/DiscoveryScanScreen.kt b/feature/discovery/src/commonMain/kotlin/org/meshtastic/feature/discovery/ui/DiscoveryScanScreen.kt index 336f5b1f5..3525ce519 100644 --- a/feature/discovery/src/commonMain/kotlin/org/meshtastic/feature/discovery/ui/DiscoveryScanScreen.kt +++ b/feature/discovery/src/commonMain/kotlin/org/meshtastic/feature/discovery/ui/DiscoveryScanScreen.kt @@ -365,13 +365,23 @@ private fun ScanButton( val disabledDescription = stringResource(Res.string.discovery_start_scan_disabled, disabledReason) val buttonModifier = if (!isEnabled) { - modifier.fillMaxWidth().semantics { contentDescription = disabledDescription } + Modifier.fillMaxWidth().semantics { contentDescription = disabledDescription } } else { - modifier.fillMaxWidth() + Modifier.fillMaxWidth() + } + Column(modifier = modifier) { + Button(onClick = onStart, enabled = isEnabled, modifier = buttonModifier) { + Icon(imageVector = MeshtasticIcons.PlayArrow, contentDescription = null) + Text(stringResource(Res.string.discovery_start_scan), modifier = Modifier.padding(start = 8.dp)) + } + if (!isEnabled && disabledReason.isNotEmpty()) { + Text( + text = disabledReason, + style = MaterialTheme.typography.bodySmall, + color = MaterialTheme.colorScheme.onSurfaceVariant, + modifier = Modifier.padding(top = 4.dp), + ) } - Button(onClick = onStart, enabled = isEnabled, modifier = buttonModifier) { - Icon(imageVector = MeshtasticIcons.PlayArrow, contentDescription = null) - Text(stringResource(Res.string.discovery_start_scan), modifier = Modifier.padding(start = 8.dp)) } } }