UI: развести статусы каналов — сводка «Связь» (BLE / TCP/IP); transport 0.1.1-SNAPSHOT; BLOCKERS B-5
Обе строки назывались «Связь» (Канал 1 WebSocket и Канал 2 Mercury BLE), из-за чего статус BLE читался как статус TCP: при выключенном Wi-Fi на очках телефон показывал «подключено». Теперь вверху вкладки «Очки» сводка с отдельными строками BLE (Mercury) и TCP/IP (Wi-Fi), в секциях — «BLE» и «TCP/IP». mercuryTransport -> 0.1.1-SNAPSHOT (клиентский WS-пинг, см. BLOCKERS B-5).
This commit is contained in:
@@ -113,6 +113,17 @@ fun GlassesStatusScreen(
|
||||
fontWeight = FontWeight.Bold,
|
||||
)
|
||||
|
||||
SectionCard(title = "Связь") {
|
||||
StatusRow(
|
||||
"BLE (Mercury)",
|
||||
if (mercuryConnected) "есть" else "нет",
|
||||
)
|
||||
StatusRow(
|
||||
"TCP/IP (Wi-Fi)",
|
||||
if (connection is ConnectionState.Connected) "есть" else "нет",
|
||||
)
|
||||
}
|
||||
|
||||
Channel1WebSocketSection(connection = connection, glasses = glasses)
|
||||
|
||||
ShizukuSection(
|
||||
@@ -183,7 +194,7 @@ private fun Channel1WebSocketSection(
|
||||
glasses: pw.binom.rayneovm.phone.protocol.GlassesStatusInfo?,
|
||||
) {
|
||||
SectionCard(title = "Канал 1 — наше приложение (WebSocket)") {
|
||||
StatusRow("Связь", connection.label)
|
||||
StatusRow("TCP/IP", connection.label)
|
||||
when (connection) {
|
||||
is ConnectionState.Connected -> glasses?.let { g ->
|
||||
StatusRow("Аккумулятор", g.batteryPercent?.let { "$it%" } ?: "—")
|
||||
@@ -270,13 +281,13 @@ private fun Channel2MercurySection(
|
||||
OutlinedButton(onClick = onScan) { Text("Проверить ещё раз") }
|
||||
}
|
||||
is MercuryState.Disconnected -> {
|
||||
StatusRow("Связь", "нет связи")
|
||||
StatusRow("BLE", "нет связи")
|
||||
mercury.message?.let { Hint(it) }
|
||||
Spacer(modifier = Modifier.height(8.dp))
|
||||
Button(onClick = onScan) { Text("Сканировать") }
|
||||
}
|
||||
is MercuryState.Scanning -> {
|
||||
StatusRow("Связь", "поиск… (найдено ${mercury.found.size})")
|
||||
StatusRow("BLE", "поиск… (найдено ${mercury.found.size})")
|
||||
Spacer(modifier = Modifier.height(8.dp))
|
||||
if (mercury.found.isNotEmpty()) {
|
||||
Text("Найденные устройства:", color = Color(0xFFB0B0B0), fontSize = 12.sp)
|
||||
@@ -288,11 +299,11 @@ private fun Channel2MercurySection(
|
||||
}
|
||||
}
|
||||
is MercuryState.Connecting -> {
|
||||
StatusRow("Связь", "сопрягаем ${mercury.device.name ?: mercury.device.address}…")
|
||||
StatusRow("BLE", "сопрягаем ${mercury.device.name ?: mercury.device.address}…")
|
||||
Hint("Если очки запрашивают PIN — подтвердите на них.")
|
||||
}
|
||||
is MercuryState.Connected -> {
|
||||
StatusRow("Связь", "подключено (${mercury.device.name ?: mercury.device.address})")
|
||||
StatusRow("BLE", "подключено (${mercury.device.name ?: mercury.device.address})")
|
||||
StatusRow("Адрес", mercury.device.address)
|
||||
StatusRow("Аккумулятор", mercury.batteryPercent?.let { "$it%" } ?: "—")
|
||||
Spacer(modifier = Modifier.height(8.dp))
|
||||
|
||||
Reference in New Issue
Block a user