From 858544b0f4ecfea89395027f0ef172baea373dc8 Mon Sep 17 00:00:00 2001 From: James Rich <2199651+jamesarich@users.noreply.github.com> Date: Mon, 16 Sep 2024 18:20:20 -0500 Subject: [PATCH] feat: adds UI for unknown node details (#1219) --- .github/workflows/android.yml | 4 +- .../java/com/geeksville/mesh/ui/NodeInfo.kt | 48 +++++++++++-------- .../ui/preview/PreviewParameterProviders.kt | 3 +- 3 files changed, 33 insertions(+), 22 deletions(-) diff --git a/.github/workflows/android.yml b/.github/workflows/android.yml index 7633fe02..8d233ac2 100644 --- a/.github/workflows/android.yml +++ b/.github/workflows/android.yml @@ -154,10 +154,12 @@ jobs: script: echo "Generated AVD snapshot for caching." - uses: reactivecircus/android-emulator-runner@v2 + env: + ANDROID_EMULATOR_WAIT_TIME_BEFORE_KILL: 60 with: api-level: ${{ matrix.api-level }} arch: x86_64 force-avd-creation: false - emulator-options: -no-snapshot-save -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none + emulator-options: -no-snapshot-save -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -no-metrics -camera-back none disable-animations: true script: ./gradlew connectedFdroidDebugAndroidTest diff --git a/app/src/main/java/com/geeksville/mesh/ui/NodeInfo.kt b/app/src/main/java/com/geeksville/mesh/ui/NodeInfo.kt index 7d4e82cd..6520484c 100644 --- a/app/src/main/java/com/geeksville/mesh/ui/NodeInfo.kt +++ b/app/src/main/java/com/geeksville/mesh/ui/NodeInfo.kt @@ -87,7 +87,16 @@ fun NodeInfo( val (textColor, nodeColor) = thatNodeInfo.colors val position = thatNodeInfo.position - val hwInfoString = thatNodeInfo.user?.hwModelString + val hwInfoString = thatNodeInfo.user?.hwModelString ?: MeshProtos.HardwareModel.UNSET.name + val roleName = + if (isUnknownUser) { + DeviceConfig.Role.UNRECOGNIZED.name + } else { + thatNodeInfo.user?.role?.let { role -> + DeviceConfig.Role.forNumber(role)?.name + } ?: DeviceConfig.Role.UNRECOGNIZED.name + } + val nodeId = thatNodeInfo.user?.id ?: "???" val highlight = Color(0x33FFFFFF) val bgColor by animateColorAsState( @@ -246,26 +255,25 @@ fun NodeInfo( Spacer(modifier = Modifier.height(4.dp)) Row( modifier = Modifier.fillMaxWidth(), - horizontalArrangement = Arrangement.SpaceBetween ) { - if (hwInfoString != null) { - Text( - text = "$hwInfoString", - fontSize = MaterialTheme.typography.button.fontSize, - style = style, - ) - } - val role = thatNodeInfo.user?.role - role?.let { - Text( - text = DeviceConfig.Role.forNumber(it).name, - fontSize = MaterialTheme.typography.button.fontSize - ) - } - val nodeId = thatNodeInfo.user?.id - if (nodeId != null) { - Text(text = nodeId, fontSize = MaterialTheme.typography.button.fontSize) - } + Text( + modifier = Modifier.weight(1f), + text = hwInfoString, + fontSize = MaterialTheme.typography.button.fontSize, + style = style, + ) + Text( + modifier = Modifier.weight(1f), + text = roleName, + textAlign = TextAlign.Center, + fontSize = MaterialTheme.typography.button.fontSize + ) + Text( + modifier = Modifier.weight(1f), + text = nodeId, + textAlign = TextAlign.End, + fontSize = MaterialTheme.typography.button.fontSize + ) } } } diff --git a/app/src/main/java/com/geeksville/mesh/ui/preview/PreviewParameterProviders.kt b/app/src/main/java/com/geeksville/mesh/ui/preview/PreviewParameterProviders.kt index af68a6d2..75d7c3b1 100644 --- a/app/src/main/java/com/geeksville/mesh/ui/preview/PreviewParameterProviders.kt +++ b/app/src/main/java/com/geeksville/mesh/ui/preview/PreviewParameterProviders.kt @@ -36,7 +36,8 @@ class NodeInfoPreviewParameterProvider: PreviewParameterProvider { longName = "Micky Mouse", shortName = "MM", id = "mickeyMouseId", - hwModel = MeshProtos.HardwareModel.TBEAM + hwModel = MeshProtos.HardwareModel.TBEAM, + role = 0, ), hopsAway = 0 )