Android: hide connected bridge from discovery list

This commit is contained in:
Peter Steinberger
2025-12-18 02:37:37 +01:00
parent cd719a8c85
commit ce1a8d70d9

View File

@@ -103,11 +103,20 @@ fun SettingsSheet(viewModel: MainViewModel) {
} }
} }
val bridgeDiscoveryFooterText = val visibleBridges =
if (bridges.isEmpty()) { if (isConnected && remoteAddress != null) {
discoveryStatusText bridges.filterNot { "${it.host}:${it.port}" == remoteAddress }
} else { } else {
"Discovery active • ${bridges.size} bridge${if (bridges.size == 1) "" else "s"} found" bridges
}
val bridgeDiscoveryFooterText =
if (visibleBridges.isEmpty()) {
discoveryStatusText
} else if (isConnected) {
"Discovery active • ${visibleBridges.size} other bridge${if (visibleBridges.size == 1) "" else "s"} found"
} else {
"Discovery active • ${visibleBridges.size} bridge${if (visibleBridges.size == 1) "" else "s"} found"
} }
LazyColumn( LazyColumn(
@@ -159,35 +168,42 @@ fun SettingsSheet(viewModel: MainViewModel) {
item { HorizontalDivider() } item { HorizontalDivider() }
item { Text("Discovered Bridges", style = MaterialTheme.typography.titleSmall) } if (!isConnected || visibleBridges.isNotEmpty()) {
if (bridges.isEmpty()) { item {
item { Text("No bridges found yet.", color = MaterialTheme.colorScheme.onSurfaceVariant) } Text(
} else { if (isConnected) "Other Bridges" else "Discovered Bridges",
items(items = bridges, key = { it.stableId }) { bridge -> style = MaterialTheme.typography.titleSmall,
ListItem( )
headlineContent = { Text(bridge.name) }, }
supportingContent = { Text("${bridge.host}:${bridge.port}") }, if (!isConnected && visibleBridges.isEmpty()) {
trailingContent = { item { Text("No bridges found yet.", color = MaterialTheme.colorScheme.onSurfaceVariant) }
Button( } else {
onClick = { items(items = visibleBridges, key = { it.stableId }) { bridge ->
NodeForegroundService.start(context) ListItem(
viewModel.connect(bridge) headlineContent = { Text(bridge.name) },
}, supportingContent = { Text("${bridge.host}:${bridge.port}") },
) { trailingContent = {
Text("Connect") Button(
} onClick = {
}, NodeForegroundService.start(context)
viewModel.connect(bridge)
},
) {
Text("Connect")
}
},
)
}
}
item {
Text(
bridgeDiscoveryFooterText,
modifier = Modifier.fillMaxWidth(),
textAlign = TextAlign.Center,
style = MaterialTheme.typography.labelMedium,
color = MaterialTheme.colorScheme.onSurfaceVariant,
) )
} }
}
item {
Text(
bridgeDiscoveryFooterText,
modifier = Modifier.fillMaxWidth(),
textAlign = TextAlign.Center,
style = MaterialTheme.typography.labelMedium,
color = MaterialTheme.colorScheme.onSurfaceVariant,
)
} }
item { HorizontalDivider() } item { HorizontalDivider() }