diff --git a/core/ui/src/main/kotlin/org/meshtastic/core/ui/component/ClickableTextField.kt b/core/ui/src/main/kotlin/org/meshtastic/core/ui/component/ClickableTextField.kt deleted file mode 100644 index 2d4accc60..000000000 --- a/core/ui/src/main/kotlin/org/meshtastic/core/ui/component/ClickableTextField.kt +++ /dev/null @@ -1,58 +0,0 @@ -/* - * Copyright (c) 2025 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.core.ui.component - -import androidx.compose.foundation.interaction.MutableInteractionSource -import androidx.compose.foundation.interaction.collectIsPressedAsState -import androidx.compose.material3.Icon -import androidx.compose.material3.OutlinedTextField -import androidx.compose.material3.Text -import androidx.compose.runtime.Composable -import androidx.compose.runtime.getValue -import androidx.compose.runtime.remember -import androidx.compose.ui.Modifier -import androidx.compose.ui.graphics.vector.ImageVector -import org.jetbrains.compose.resources.StringResource -import org.jetbrains.compose.resources.stringResource - -@Composable -fun ClickableTextField( - label: StringResource, - enabled: Boolean, - trailingIcon: ImageVector, - value: String, - onClick: () -> Unit, - modifier: Modifier = Modifier, - isError: Boolean = false, -) { - val source = remember { MutableInteractionSource() } - val isPressed by source.collectIsPressedAsState() - if (isPressed) onClick() - - OutlinedTextField( - value, - onValueChange = {}, - enabled = enabled, - readOnly = true, - label = { Text(stringResource(label)) }, - trailingIcon = { Icon(trailingIcon, null) }, - isError = isError, - interactionSource = source, - modifier = modifier, - ) -} diff --git a/core/ui/src/screenshotTest/kotlin/org/meshtastic/core/ui/ComponentScreenshotTest.kt b/core/ui/src/screenshotTest/kotlin/org/meshtastic/core/ui/ComponentScreenshotTest.kt new file mode 100644 index 000000000..9da44d81e --- /dev/null +++ b/core/ui/src/screenshotTest/kotlin/org/meshtastic/core/ui/ComponentScreenshotTest.kt @@ -0,0 +1,173 @@ +/* + * Copyright (c) 2025-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.core.ui + +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.height +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.rounded.Android +import androidx.compose.material3.Surface +import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier +import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.tooling.preview.PreviewParameter +import androidx.compose.ui.unit.dp +import com.android.tools.screenshot.PreviewTest +import org.meshtastic.core.database.model.Node +import org.meshtastic.core.ui.component.BatteryInfoPreviewParameterProvider +import org.meshtastic.core.ui.component.ChannelInfo +import org.meshtastic.core.ui.component.DistanceInfo +import org.meshtastic.core.ui.component.ElevationInfo +import org.meshtastic.core.ui.component.HopsInfo +import org.meshtastic.core.ui.component.IAQScale +import org.meshtastic.core.ui.component.IaqDisplayMode +import org.meshtastic.core.ui.component.IndoorAirQuality +import org.meshtastic.core.ui.component.ListItem +import org.meshtastic.core.ui.component.MaterialBatteryInfo +import org.meshtastic.core.ui.component.NodeChip +import org.meshtastic.core.ui.component.SatelliteCountInfo +import org.meshtastic.core.ui.component.SignalInfo +import org.meshtastic.core.ui.component.SwitchListItem +import org.meshtastic.core.ui.component.TitledCard +import org.meshtastic.core.ui.component.preview.NodePreviewParameterProvider +import org.meshtastic.core.ui.theme.AppTheme +import org.meshtastic.proto.Config + +class ComponentScreenshotTest { + + @PreviewTest + @Preview(showBackground = true) + @Composable + fun BatteryInfoTest(@PreviewParameter(BatteryInfoPreviewParameterProvider::class) info: Pair) { + AppTheme { + MaterialBatteryInfo(level = info.first, voltage = info.second) + } + } + + @PreviewTest + @Preview(showBackground = true) + @Composable + fun SignalInfoTest(@PreviewParameter(NodePreviewParameterProvider::class) node: Node) { + AppTheme { + SignalInfo(node = node) + } + } + + @PreviewTest + @Preview(showBackground = true) + @Composable + fun NodeChipTest(@PreviewParameter(NodePreviewParameterProvider::class) node: Node) { + AppTheme { + NodeChip(node = node) + } + } + + @PreviewTest + @Preview(showBackground = true) + @Composable + fun DistanceInfoTest() { + AppTheme { + DistanceInfo(distance = "12.3 km") + } + } + + @PreviewTest + @Preview(showBackground = true) + @Composable + fun ElevationInfoTest() { + AppTheme { + ElevationInfo(altitude = 1234, system = Config.DisplayConfig.DisplayUnits.METRIC, suffix = "m") + } + } + + @PreviewTest + @Preview(showBackground = true) + @Composable + fun HopsInfoTest() { + AppTheme { + HopsInfo(hops = 3) + } + } + + @PreviewTest + @Preview(showBackground = true) + @Composable + fun SatelliteCountInfoTest() { + AppTheme { + SatelliteCountInfo(satCount = 8) + } + } + + @PreviewTest + @Preview(showBackground = true) + @Composable + fun ChannelInfoTest() { + AppTheme { + ChannelInfo(channel = 1) + } + } + + @PreviewTest + @Preview(showBackground = true) + @Composable + fun ListItemTest() { + AppTheme { + ListItem(text = "Example Item", leadingIcon = Icons.Rounded.Android) {} + } + } + + @PreviewTest + @Preview(showBackground = true) + @Composable + fun SwitchListItemTest() { + AppTheme { + SwitchListItem(checked = true, text = "Example Switch", onClick = {}) + } + } + + @PreviewTest + @Preview(showBackground = true) + @Composable + fun TitledCardTest() { + AppTheme { + Surface { + TitledCard(title = "Example Title") { + Box(modifier = Modifier.fillMaxWidth().height(50.dp)) + } + } + } + } + + @PreviewTest + @Preview(showBackground = true) + @Composable + fun IAQScaleTest() { + AppTheme { + IAQScale() + } + } + + @PreviewTest + @Preview(showBackground = true) + @Composable + fun IndoorAirQualityPillTest() { + AppTheme { + IndoorAirQuality(iaq = 101, displayMode = IaqDisplayMode.Pill) + } + } +} diff --git a/core/ui/src/screenshotTestFdroidDebug/reference/org/meshtastic/core/ui/ComponentScreenshotTest/BatteryInfoTest_748aa731_e7e392ea_0.png b/core/ui/src/screenshotTestFdroidDebug/reference/org/meshtastic/core/ui/ComponentScreenshotTest/BatteryInfoTest_748aa731_e7e392ea_0.png new file mode 100644 index 000000000..0e5a618e7 Binary files /dev/null and b/core/ui/src/screenshotTestFdroidDebug/reference/org/meshtastic/core/ui/ComponentScreenshotTest/BatteryInfoTest_748aa731_e7e392ea_0.png differ diff --git a/core/ui/src/screenshotTestFdroidDebug/reference/org/meshtastic/core/ui/ComponentScreenshotTest/BatteryInfoTest_748aa731_e7e392ea_1.png b/core/ui/src/screenshotTestFdroidDebug/reference/org/meshtastic/core/ui/ComponentScreenshotTest/BatteryInfoTest_748aa731_e7e392ea_1.png new file mode 100644 index 000000000..4587fccdf Binary files /dev/null and b/core/ui/src/screenshotTestFdroidDebug/reference/org/meshtastic/core/ui/ComponentScreenshotTest/BatteryInfoTest_748aa731_e7e392ea_1.png differ diff --git a/core/ui/src/screenshotTestFdroidDebug/reference/org/meshtastic/core/ui/ComponentScreenshotTest/BatteryInfoTest_748aa731_e7e392ea_2.png b/core/ui/src/screenshotTestFdroidDebug/reference/org/meshtastic/core/ui/ComponentScreenshotTest/BatteryInfoTest_748aa731_e7e392ea_2.png new file mode 100644 index 000000000..9c6561829 Binary files /dev/null and b/core/ui/src/screenshotTestFdroidDebug/reference/org/meshtastic/core/ui/ComponentScreenshotTest/BatteryInfoTest_748aa731_e7e392ea_2.png differ diff --git a/core/ui/src/screenshotTestFdroidDebug/reference/org/meshtastic/core/ui/ComponentScreenshotTest/BatteryInfoTest_748aa731_e7e392ea_3.png b/core/ui/src/screenshotTestFdroidDebug/reference/org/meshtastic/core/ui/ComponentScreenshotTest/BatteryInfoTest_748aa731_e7e392ea_3.png new file mode 100644 index 000000000..c064a352c Binary files /dev/null and b/core/ui/src/screenshotTestFdroidDebug/reference/org/meshtastic/core/ui/ComponentScreenshotTest/BatteryInfoTest_748aa731_e7e392ea_3.png differ diff --git a/core/ui/src/screenshotTestFdroidDebug/reference/org/meshtastic/core/ui/ComponentScreenshotTest/BatteryInfoTest_748aa731_e7e392ea_4.png b/core/ui/src/screenshotTestFdroidDebug/reference/org/meshtastic/core/ui/ComponentScreenshotTest/BatteryInfoTest_748aa731_e7e392ea_4.png new file mode 100644 index 000000000..26173d894 Binary files /dev/null and b/core/ui/src/screenshotTestFdroidDebug/reference/org/meshtastic/core/ui/ComponentScreenshotTest/BatteryInfoTest_748aa731_e7e392ea_4.png differ diff --git a/core/ui/src/screenshotTestFdroidDebug/reference/org/meshtastic/core/ui/ComponentScreenshotTest/BatteryInfoTest_748aa731_e7e392ea_5.png b/core/ui/src/screenshotTestFdroidDebug/reference/org/meshtastic/core/ui/ComponentScreenshotTest/BatteryInfoTest_748aa731_e7e392ea_5.png new file mode 100644 index 000000000..316da4d15 Binary files /dev/null and b/core/ui/src/screenshotTestFdroidDebug/reference/org/meshtastic/core/ui/ComponentScreenshotTest/BatteryInfoTest_748aa731_e7e392ea_5.png differ diff --git a/core/ui/src/screenshotTestFdroidDebug/reference/org/meshtastic/core/ui/ComponentScreenshotTest/BatteryInfoTest_748aa731_e7e392ea_6.png b/core/ui/src/screenshotTestFdroidDebug/reference/org/meshtastic/core/ui/ComponentScreenshotTest/BatteryInfoTest_748aa731_e7e392ea_6.png new file mode 100644 index 000000000..bd0192643 Binary files /dev/null and b/core/ui/src/screenshotTestFdroidDebug/reference/org/meshtastic/core/ui/ComponentScreenshotTest/BatteryInfoTest_748aa731_e7e392ea_6.png differ diff --git a/core/ui/src/screenshotTestFdroidDebug/reference/org/meshtastic/core/ui/ComponentScreenshotTest/BatteryInfoTest_748aa731_e7e392ea_7.png b/core/ui/src/screenshotTestFdroidDebug/reference/org/meshtastic/core/ui/ComponentScreenshotTest/BatteryInfoTest_748aa731_e7e392ea_7.png new file mode 100644 index 000000000..bd0192643 Binary files /dev/null and b/core/ui/src/screenshotTestFdroidDebug/reference/org/meshtastic/core/ui/ComponentScreenshotTest/BatteryInfoTest_748aa731_e7e392ea_7.png differ diff --git a/core/ui/src/screenshotTestFdroidDebug/reference/org/meshtastic/core/ui/ComponentScreenshotTest/ChannelInfoTest_748aa731_0.png b/core/ui/src/screenshotTestFdroidDebug/reference/org/meshtastic/core/ui/ComponentScreenshotTest/ChannelInfoTest_748aa731_0.png new file mode 100644 index 000000000..bd0192643 Binary files /dev/null and b/core/ui/src/screenshotTestFdroidDebug/reference/org/meshtastic/core/ui/ComponentScreenshotTest/ChannelInfoTest_748aa731_0.png differ diff --git a/core/ui/src/screenshotTestFdroidDebug/reference/org/meshtastic/core/ui/ComponentScreenshotTest/DistanceInfoTest_748aa731_0.png b/core/ui/src/screenshotTestFdroidDebug/reference/org/meshtastic/core/ui/ComponentScreenshotTest/DistanceInfoTest_748aa731_0.png new file mode 100644 index 000000000..bd0192643 Binary files /dev/null and b/core/ui/src/screenshotTestFdroidDebug/reference/org/meshtastic/core/ui/ComponentScreenshotTest/DistanceInfoTest_748aa731_0.png differ diff --git a/core/ui/src/screenshotTestFdroidDebug/reference/org/meshtastic/core/ui/ComponentScreenshotTest/ElevationInfoTest_748aa731_0.png b/core/ui/src/screenshotTestFdroidDebug/reference/org/meshtastic/core/ui/ComponentScreenshotTest/ElevationInfoTest_748aa731_0.png new file mode 100644 index 000000000..bd0192643 Binary files /dev/null and b/core/ui/src/screenshotTestFdroidDebug/reference/org/meshtastic/core/ui/ComponentScreenshotTest/ElevationInfoTest_748aa731_0.png differ diff --git a/core/ui/src/screenshotTestFdroidDebug/reference/org/meshtastic/core/ui/ComponentScreenshotTest/HopsInfoTest_748aa731_0.png b/core/ui/src/screenshotTestFdroidDebug/reference/org/meshtastic/core/ui/ComponentScreenshotTest/HopsInfoTest_748aa731_0.png new file mode 100644 index 000000000..bd0192643 Binary files /dev/null and b/core/ui/src/screenshotTestFdroidDebug/reference/org/meshtastic/core/ui/ComponentScreenshotTest/HopsInfoTest_748aa731_0.png differ diff --git a/core/ui/src/screenshotTestFdroidDebug/reference/org/meshtastic/core/ui/ComponentScreenshotTest/IAQScaleTest_748aa731_0.png b/core/ui/src/screenshotTestFdroidDebug/reference/org/meshtastic/core/ui/ComponentScreenshotTest/IAQScaleTest_748aa731_0.png new file mode 100644 index 000000000..23a4a6558 Binary files /dev/null and b/core/ui/src/screenshotTestFdroidDebug/reference/org/meshtastic/core/ui/ComponentScreenshotTest/IAQScaleTest_748aa731_0.png differ diff --git a/core/ui/src/screenshotTestFdroidDebug/reference/org/meshtastic/core/ui/ComponentScreenshotTest/IndoorAirQualityPillTest_748aa731_0.png b/core/ui/src/screenshotTestFdroidDebug/reference/org/meshtastic/core/ui/ComponentScreenshotTest/IndoorAirQualityPillTest_748aa731_0.png new file mode 100644 index 000000000..bd0192643 Binary files /dev/null and b/core/ui/src/screenshotTestFdroidDebug/reference/org/meshtastic/core/ui/ComponentScreenshotTest/IndoorAirQualityPillTest_748aa731_0.png differ diff --git a/core/ui/src/screenshotTestFdroidDebug/reference/org/meshtastic/core/ui/ComponentScreenshotTest/ListItemTest_748aa731_0.png b/core/ui/src/screenshotTestFdroidDebug/reference/org/meshtastic/core/ui/ComponentScreenshotTest/ListItemTest_748aa731_0.png new file mode 100644 index 000000000..4f6cc530a Binary files /dev/null and b/core/ui/src/screenshotTestFdroidDebug/reference/org/meshtastic/core/ui/ComponentScreenshotTest/ListItemTest_748aa731_0.png differ diff --git a/core/ui/src/screenshotTestFdroidDebug/reference/org/meshtastic/core/ui/ComponentScreenshotTest/NodeChipTest_748aa731_41783942_0.png b/core/ui/src/screenshotTestFdroidDebug/reference/org/meshtastic/core/ui/ComponentScreenshotTest/NodeChipTest_748aa731_41783942_0.png new file mode 100644 index 000000000..b95c37a8a Binary files /dev/null and b/core/ui/src/screenshotTestFdroidDebug/reference/org/meshtastic/core/ui/ComponentScreenshotTest/NodeChipTest_748aa731_41783942_0.png differ diff --git a/core/ui/src/screenshotTestFdroidDebug/reference/org/meshtastic/core/ui/ComponentScreenshotTest/NodeChipTest_748aa731_41783942_1.png b/core/ui/src/screenshotTestFdroidDebug/reference/org/meshtastic/core/ui/ComponentScreenshotTest/NodeChipTest_748aa731_41783942_1.png new file mode 100644 index 000000000..10a143fca Binary files /dev/null and b/core/ui/src/screenshotTestFdroidDebug/reference/org/meshtastic/core/ui/ComponentScreenshotTest/NodeChipTest_748aa731_41783942_1.png differ diff --git a/core/ui/src/screenshotTestFdroidDebug/reference/org/meshtastic/core/ui/ComponentScreenshotTest/NodeChipTest_748aa731_41783942_2.png b/core/ui/src/screenshotTestFdroidDebug/reference/org/meshtastic/core/ui/ComponentScreenshotTest/NodeChipTest_748aa731_41783942_2.png new file mode 100644 index 000000000..6244babaf Binary files /dev/null and b/core/ui/src/screenshotTestFdroidDebug/reference/org/meshtastic/core/ui/ComponentScreenshotTest/NodeChipTest_748aa731_41783942_2.png differ diff --git a/core/ui/src/screenshotTestFdroidDebug/reference/org/meshtastic/core/ui/ComponentScreenshotTest/NodeChipTest_748aa731_41783942_3.png b/core/ui/src/screenshotTestFdroidDebug/reference/org/meshtastic/core/ui/ComponentScreenshotTest/NodeChipTest_748aa731_41783942_3.png new file mode 100644 index 000000000..41ce867ae Binary files /dev/null and b/core/ui/src/screenshotTestFdroidDebug/reference/org/meshtastic/core/ui/ComponentScreenshotTest/NodeChipTest_748aa731_41783942_3.png differ diff --git a/core/ui/src/screenshotTestFdroidDebug/reference/org/meshtastic/core/ui/ComponentScreenshotTest/NodeChipTest_748aa731_41783942_4.png b/core/ui/src/screenshotTestFdroidDebug/reference/org/meshtastic/core/ui/ComponentScreenshotTest/NodeChipTest_748aa731_41783942_4.png new file mode 100644 index 000000000..d032a70d5 Binary files /dev/null and b/core/ui/src/screenshotTestFdroidDebug/reference/org/meshtastic/core/ui/ComponentScreenshotTest/NodeChipTest_748aa731_41783942_4.png differ diff --git a/core/ui/src/screenshotTestFdroidDebug/reference/org/meshtastic/core/ui/ComponentScreenshotTest/SatelliteCountInfoTest_748aa731_0.png b/core/ui/src/screenshotTestFdroidDebug/reference/org/meshtastic/core/ui/ComponentScreenshotTest/SatelliteCountInfoTest_748aa731_0.png new file mode 100644 index 000000000..bd0192643 Binary files /dev/null and b/core/ui/src/screenshotTestFdroidDebug/reference/org/meshtastic/core/ui/ComponentScreenshotTest/SatelliteCountInfoTest_748aa731_0.png differ diff --git a/core/ui/src/screenshotTestFdroidDebug/reference/org/meshtastic/core/ui/ComponentScreenshotTest/SignalInfoTest_748aa731_41783942_0.png b/core/ui/src/screenshotTestFdroidDebug/reference/org/meshtastic/core/ui/ComponentScreenshotTest/SignalInfoTest_748aa731_41783942_0.png new file mode 100644 index 000000000..bd0192643 Binary files /dev/null and b/core/ui/src/screenshotTestFdroidDebug/reference/org/meshtastic/core/ui/ComponentScreenshotTest/SignalInfoTest_748aa731_41783942_0.png differ diff --git a/core/ui/src/screenshotTestFdroidDebug/reference/org/meshtastic/core/ui/ComponentScreenshotTest/SignalInfoTest_748aa731_41783942_1.png b/core/ui/src/screenshotTestFdroidDebug/reference/org/meshtastic/core/ui/ComponentScreenshotTest/SignalInfoTest_748aa731_41783942_1.png new file mode 100644 index 000000000..bd0192643 Binary files /dev/null and b/core/ui/src/screenshotTestFdroidDebug/reference/org/meshtastic/core/ui/ComponentScreenshotTest/SignalInfoTest_748aa731_41783942_1.png differ diff --git a/core/ui/src/screenshotTestFdroidDebug/reference/org/meshtastic/core/ui/ComponentScreenshotTest/SignalInfoTest_748aa731_41783942_2.png b/core/ui/src/screenshotTestFdroidDebug/reference/org/meshtastic/core/ui/ComponentScreenshotTest/SignalInfoTest_748aa731_41783942_2.png new file mode 100644 index 000000000..bd0192643 Binary files /dev/null and b/core/ui/src/screenshotTestFdroidDebug/reference/org/meshtastic/core/ui/ComponentScreenshotTest/SignalInfoTest_748aa731_41783942_2.png differ diff --git a/core/ui/src/screenshotTestFdroidDebug/reference/org/meshtastic/core/ui/ComponentScreenshotTest/SignalInfoTest_748aa731_41783942_3.png b/core/ui/src/screenshotTestFdroidDebug/reference/org/meshtastic/core/ui/ComponentScreenshotTest/SignalInfoTest_748aa731_41783942_3.png new file mode 100644 index 000000000..bd0192643 Binary files /dev/null and b/core/ui/src/screenshotTestFdroidDebug/reference/org/meshtastic/core/ui/ComponentScreenshotTest/SignalInfoTest_748aa731_41783942_3.png differ diff --git a/core/ui/src/screenshotTestFdroidDebug/reference/org/meshtastic/core/ui/ComponentScreenshotTest/SignalInfoTest_748aa731_41783942_4.png b/core/ui/src/screenshotTestFdroidDebug/reference/org/meshtastic/core/ui/ComponentScreenshotTest/SignalInfoTest_748aa731_41783942_4.png new file mode 100644 index 000000000..bd0192643 Binary files /dev/null and b/core/ui/src/screenshotTestFdroidDebug/reference/org/meshtastic/core/ui/ComponentScreenshotTest/SignalInfoTest_748aa731_41783942_4.png differ diff --git a/core/ui/src/screenshotTestFdroidDebug/reference/org/meshtastic/core/ui/ComponentScreenshotTest/SwitchListItemTest_748aa731_0.png b/core/ui/src/screenshotTestFdroidDebug/reference/org/meshtastic/core/ui/ComponentScreenshotTest/SwitchListItemTest_748aa731_0.png new file mode 100644 index 000000000..508b6d236 Binary files /dev/null and b/core/ui/src/screenshotTestFdroidDebug/reference/org/meshtastic/core/ui/ComponentScreenshotTest/SwitchListItemTest_748aa731_0.png differ diff --git a/core/ui/src/screenshotTestFdroidDebug/reference/org/meshtastic/core/ui/ComponentScreenshotTest/TitledCardTest_748aa731_0.png b/core/ui/src/screenshotTestFdroidDebug/reference/org/meshtastic/core/ui/ComponentScreenshotTest/TitledCardTest_748aa731_0.png new file mode 100644 index 000000000..06a5a72c6 Binary files /dev/null and b/core/ui/src/screenshotTestFdroidDebug/reference/org/meshtastic/core/ui/ComponentScreenshotTest/TitledCardTest_748aa731_0.png differ diff --git a/feature/node/src/main/kotlin/org/meshtastic/feature/node/component/ChannelInfo.kt b/feature/node/src/main/kotlin/org/meshtastic/feature/node/component/ChannelInfo.kt deleted file mode 100644 index 040856fc8..000000000 --- a/feature/node/src/main/kotlin/org/meshtastic/feature/node/component/ChannelInfo.kt +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Copyright (c) 2025-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.material.icons.Icons -import androidx.compose.material.icons.rounded.Tsunami -import androidx.compose.material3.MaterialTheme -import androidx.compose.runtime.Composable -import androidx.compose.ui.Modifier -import androidx.compose.ui.graphics.Color -import androidx.compose.ui.tooling.preview.PreviewLightDark -import org.meshtastic.core.ui.theme.AppTheme - -@Composable -fun ChannelInfo( - channel: Int, - modifier: Modifier = Modifier, - contentColor: Color = MaterialTheme.colorScheme.onSurface, -) { - IconInfo( - modifier = modifier, - icon = Icons.Rounded.Tsunami, - contentDescription = "Channel", - text = channel.toString(), - contentColor = contentColor, - ) -} - -@PreviewLightDark -@Composable -private fun ChannelInfoPreview() { - AppTheme { ChannelInfo(channel = 2) } -} diff --git a/feature/node/src/main/kotlin/org/meshtastic/feature/node/component/CompassBottomSheet.kt b/feature/node/src/main/kotlin/org/meshtastic/feature/node/component/CompassBottomSheet.kt index 7f8b99573..049f75adf 100644 --- a/feature/node/src/main/kotlin/org/meshtastic/feature/node/component/CompassBottomSheet.kt +++ b/feature/node/src/main/kotlin/org/meshtastic/feature/node/component/CompassBottomSheet.kt @@ -70,6 +70,7 @@ import org.meshtastic.core.resources.compass_uncertainty_unknown import org.meshtastic.core.resources.elevation_suffix import org.meshtastic.core.resources.exchange_position import org.meshtastic.core.resources.last_position_update +import org.meshtastic.core.ui.component.ElevationInfo import org.meshtastic.core.ui.theme.AppTheme import org.meshtastic.feature.node.compass.CompassUiState import org.meshtastic.feature.node.compass.CompassWarning diff --git a/feature/node/src/main/kotlin/org/meshtastic/feature/node/component/DistanceInfo.kt b/feature/node/src/main/kotlin/org/meshtastic/feature/node/component/DistanceInfo.kt deleted file mode 100644 index c65b9a490..000000000 --- a/feature/node/src/main/kotlin/org/meshtastic/feature/node/component/DistanceInfo.kt +++ /dev/null @@ -1,51 +0,0 @@ -/* - * Copyright (c) 2025-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.material.icons.Icons -import androidx.compose.material.icons.rounded.SocialDistance -import androidx.compose.material3.MaterialTheme -import androidx.compose.runtime.Composable -import androidx.compose.ui.Modifier -import androidx.compose.ui.graphics.Color -import androidx.compose.ui.tooling.preview.PreviewLightDark -import org.jetbrains.compose.resources.stringResource -import org.meshtastic.core.resources.Res -import org.meshtastic.core.resources.distance -import org.meshtastic.core.ui.theme.AppTheme - -@Composable -fun DistanceInfo( - distance: String, - modifier: Modifier = Modifier, - contentColor: Color = MaterialTheme.colorScheme.onSurface, -) { - IconInfo( - modifier = modifier, - icon = Icons.Rounded.SocialDistance, - contentDescription = stringResource(Res.string.distance), - label = stringResource(Res.string.distance), - text = distance, - contentColor = contentColor, - ) -} - -@PreviewLightDark -@Composable -private fun DistanceInfoPreview() { - AppTheme { DistanceInfo(distance = "423 mi.") } -} diff --git a/feature/node/src/main/kotlin/org/meshtastic/feature/node/component/ElevationInfo.kt b/feature/node/src/main/kotlin/org/meshtastic/feature/node/component/ElevationInfo.kt deleted file mode 100644 index dca3b143f..000000000 --- a/feature/node/src/main/kotlin/org/meshtastic/feature/node/component/ElevationInfo.kt +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Copyright (c) 2025-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.material3.MaterialTheme -import androidx.compose.runtime.Composable -import androidx.compose.ui.Modifier -import androidx.compose.ui.graphics.Color -import androidx.compose.ui.tooling.preview.Preview -import org.jetbrains.compose.resources.stringResource -import org.meshtastic.core.model.util.metersIn -import org.meshtastic.core.model.util.toString -import org.meshtastic.core.resources.Res -import org.meshtastic.core.resources.altitude -import org.meshtastic.core.resources.elevation_suffix -import org.meshtastic.core.ui.icon.Elevation -import org.meshtastic.core.ui.icon.MeshtasticIcons -import org.meshtastic.proto.Config - -@Composable -fun ElevationInfo( - modifier: Modifier = Modifier, - altitude: Int, - system: Config.DisplayConfig.DisplayUnits, - suffix: String = stringResource(Res.string.elevation_suffix), - contentColor: Color = MaterialTheme.colorScheme.onSurface, -) { - IconInfo( - modifier = modifier, - icon = MeshtasticIcons.Elevation, - contentDescription = stringResource(Res.string.altitude), - label = stringResource(Res.string.altitude), - text = altitude.metersIn(system).toString(system) + " " + suffix, - contentColor = contentColor, - ) -} - -@Composable -@Preview -private fun ElevationInfoPreview() { - MaterialTheme { ElevationInfo(altitude = 100, system = Config.DisplayConfig.DisplayUnits.METRIC, suffix = "ASL") } -} diff --git a/feature/node/src/main/kotlin/org/meshtastic/feature/node/component/HopsInfo.kt b/feature/node/src/main/kotlin/org/meshtastic/feature/node/component/HopsInfo.kt deleted file mode 100644 index c888bbca1..000000000 --- a/feature/node/src/main/kotlin/org/meshtastic/feature/node/component/HopsInfo.kt +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Copyright (c) 2025-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.material.icons.Icons -import androidx.compose.material.icons.rounded.CrueltyFree -import androidx.compose.material3.MaterialTheme -import androidx.compose.runtime.Composable -import androidx.compose.ui.Modifier -import androidx.compose.ui.graphics.Color -import androidx.compose.ui.tooling.preview.PreviewLightDark -import org.jetbrains.compose.resources.stringResource -import org.meshtastic.core.resources.Res -import org.meshtastic.core.resources.hops_away -import org.meshtastic.core.ui.theme.AppTheme - -@Composable -fun HopsInfo(hops: Int, modifier: Modifier = Modifier, contentColor: Color = MaterialTheme.colorScheme.onSurface) { - IconInfo( - modifier = modifier, - icon = Icons.Rounded.CrueltyFree, - contentDescription = stringResource(Res.string.hops_away), - label = stringResource(Res.string.hops_away), - text = hops.toString(), - contentColor = contentColor, - ) -} - -@PreviewLightDark -@Composable -private fun HopsInfoPreview() { - AppTheme { HopsInfo(hops = 3) } -} diff --git a/feature/node/src/main/kotlin/org/meshtastic/feature/node/component/IconInfo.kt b/feature/node/src/main/kotlin/org/meshtastic/feature/node/component/IconInfo.kt deleted file mode 100644 index 1c02eb024..000000000 --- a/feature/node/src/main/kotlin/org/meshtastic/feature/node/component/IconInfo.kt +++ /dev/null @@ -1,72 +0,0 @@ -/* - * Copyright (c) 2025-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.Row -import androidx.compose.foundation.layout.size -import androidx.compose.material3.Icon -import androidx.compose.material3.MaterialTheme -import androidx.compose.material3.Text -import androidx.compose.runtime.Composable -import androidx.compose.ui.Alignment -import androidx.compose.ui.Modifier -import androidx.compose.ui.graphics.Color -import androidx.compose.ui.graphics.vector.ImageVector -import androidx.compose.ui.text.TextStyle -import androidx.compose.ui.tooling.preview.Preview -import androidx.compose.ui.unit.dp -import org.meshtastic.core.ui.icon.Elevation -import org.meshtastic.core.ui.icon.MeshtasticIcons - -private const val SIZE_ICON = 20 - -@Composable -fun IconInfo( - icon: ImageVector, - contentDescription: String, - modifier: Modifier = Modifier, - label: String? = null, - text: String? = null, - style: TextStyle = MaterialTheme.typography.labelMedium, - contentColor: Color = MaterialTheme.colorScheme.onSurface, - content: @Composable () -> Unit = {}, -) { - Row( - modifier = modifier, - verticalAlignment = Alignment.CenterVertically, - horizontalArrangement = Arrangement.spacedBy(2.dp), - ) { - Icon( - modifier = Modifier.size(SIZE_ICON.dp), - imageVector = icon, - contentDescription = contentDescription, - tint = contentColor, - ) - label?.let { Text(text = it, style = style, color = contentColor) } - text?.let { Text(text = it, style = style, color = contentColor) } - content() - } -} - -@Composable -@Preview -private fun IconInfoPreview() { - MaterialTheme { - IconInfo(icon = MeshtasticIcons.Elevation, contentDescription = "Elevation", content = { Text(text = "100") }) - } -} diff --git a/feature/node/src/main/kotlin/org/meshtastic/feature/node/component/LastHeardInfo.kt b/feature/node/src/main/kotlin/org/meshtastic/feature/node/component/LastHeardInfo.kt deleted file mode 100644 index 8821065a0..000000000 --- a/feature/node/src/main/kotlin/org/meshtastic/feature/node/component/LastHeardInfo.kt +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Copyright (c) 2025-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.material3.MaterialTheme -import androidx.compose.runtime.Composable -import androidx.compose.ui.Modifier -import androidx.compose.ui.graphics.Color -import androidx.compose.ui.res.vectorResource -import androidx.compose.ui.tooling.preview.PreviewLightDark -import org.jetbrains.compose.resources.stringResource -import org.jetbrains.compose.resources.vectorResource -import org.meshtastic.core.common.util.nowSeconds -import org.meshtastic.core.resources.Res -import org.meshtastic.core.resources.ic_antenna -import org.meshtastic.core.resources.node_sort_last_heard -import org.meshtastic.core.ui.theme.AppTheme -import org.meshtastic.core.ui.util.formatAgo - -@Composable -fun LastHeardInfo( - modifier: Modifier = Modifier, - lastHeard: Int, - showLabel: Boolean = true, - contentColor: Color = MaterialTheme.colorScheme.onSurface, -) { - IconInfo( - modifier = modifier, - icon = vectorResource(Res.drawable.ic_antenna), - contentDescription = stringResource(Res.string.node_sort_last_heard), - label = if (showLabel) stringResource(Res.string.node_sort_last_heard) else null, - text = formatAgo(lastHeard), - contentColor = contentColor, - ) -} - -@PreviewLightDark -@Composable -private fun LastHeardInfoPreview() { - AppTheme { LastHeardInfo(lastHeard = nowSeconds.toInt() - 8600) } -} diff --git a/feature/node/src/main/kotlin/org/meshtastic/feature/node/component/SatelliteCountInfo.kt b/feature/node/src/main/kotlin/org/meshtastic/feature/node/component/SatelliteCountInfo.kt deleted file mode 100644 index f11749d98..000000000 --- a/feature/node/src/main/kotlin/org/meshtastic/feature/node/component/SatelliteCountInfo.kt +++ /dev/null @@ -1,51 +0,0 @@ -/* - * Copyright (c) 2025-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.material.icons.Icons -import androidx.compose.material.icons.twotone.SatelliteAlt -import androidx.compose.material3.MaterialTheme -import androidx.compose.runtime.Composable -import androidx.compose.ui.Modifier -import androidx.compose.ui.graphics.Color -import androidx.compose.ui.tooling.preview.PreviewLightDark -import org.jetbrains.compose.resources.stringResource -import org.meshtastic.core.resources.Res -import org.meshtastic.core.resources.sats -import org.meshtastic.core.ui.theme.AppTheme - -@Composable -fun SatelliteCountInfo( - modifier: Modifier = Modifier, - satCount: Int, - contentColor: Color = MaterialTheme.colorScheme.onSurface, -) { - IconInfo( - modifier = modifier, - icon = Icons.TwoTone.SatelliteAlt, - contentDescription = stringResource(Res.string.sats), - label = stringResource(Res.string.sats), - text = "$satCount", - contentColor = contentColor, - ) -} - -@PreviewLightDark -@Composable -private fun SatelliteCountInfoPreview() { - AppTheme { SatelliteCountInfo(satCount = 5) } -} diff --git a/feature/node/src/main/kotlin/org/meshtastic/feature/node/component/TelemetryInfo.kt b/feature/node/src/main/kotlin/org/meshtastic/feature/node/component/TelemetryInfo.kt deleted file mode 100644 index 12acecf9d..000000000 --- a/feature/node/src/main/kotlin/org/meshtastic/feature/node/component/TelemetryInfo.kt +++ /dev/null @@ -1,199 +0,0 @@ -/* - * Copyright (c) 2025-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("TooManyFunctions") - -package org.meshtastic.feature.node.component - -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.rounded.Air -import androidx.compose.material.icons.rounded.ElectricBolt -import androidx.compose.material.icons.rounded.Fingerprint -import androidx.compose.material.icons.rounded.Grass -import androidx.compose.material.icons.rounded.People -import androidx.compose.material.icons.rounded.Router -import androidx.compose.material.icons.rounded.Thermostat -import androidx.compose.material.icons.rounded.WaterDrop -import androidx.compose.material.icons.rounded.Work -import androidx.compose.material3.MaterialTheme -import androidx.compose.runtime.Composable -import androidx.compose.ui.Modifier -import androidx.compose.ui.graphics.Color -import org.jetbrains.compose.resources.stringResource -import org.meshtastic.core.resources.Res -import org.meshtastic.core.resources.env_metrics_log -import org.meshtastic.core.resources.humidity -import org.meshtastic.core.resources.iaq -import org.meshtastic.core.resources.node_id -import org.meshtastic.core.resources.pax -import org.meshtastic.core.resources.pax_metrics_log -import org.meshtastic.core.resources.role -import org.meshtastic.core.resources.soil_moisture -import org.meshtastic.core.resources.soil_temperature -import org.meshtastic.core.resources.temperature - -@Composable -fun TemperatureInfo( - temp: String, - modifier: Modifier = Modifier, - contentColor: Color = MaterialTheme.colorScheme.onSurface, -) { - IconInfo( - modifier = modifier, - icon = Icons.Rounded.Thermostat, - contentDescription = stringResource(Res.string.env_metrics_log), - label = stringResource(Res.string.temperature), - text = temp, - contentColor = contentColor, - ) -} - -@Composable -fun HumidityInfo( - humidity: String, - modifier: Modifier = Modifier, - contentColor: Color = MaterialTheme.colorScheme.onSurface, -) { - IconInfo( - modifier = modifier, - icon = Icons.Rounded.WaterDrop, - contentDescription = stringResource(Res.string.env_metrics_log), - label = stringResource(Res.string.humidity), - text = humidity, - contentColor = contentColor, - ) -} - -@Composable -fun SoilTemperatureInfo( - temp: String, - modifier: Modifier = Modifier, - contentColor: Color = MaterialTheme.colorScheme.onSurface, -) { - IconInfo( - modifier = modifier, - icon = Icons.Rounded.Grass, - contentDescription = stringResource(Res.string.env_metrics_log), - label = stringResource(Res.string.soil_temperature), - text = temp, - contentColor = contentColor, - ) -} - -@Composable -fun SoilMoistureInfo( - moisture: String, - modifier: Modifier = Modifier, - contentColor: Color = MaterialTheme.colorScheme.onSurface, -) { - IconInfo( - modifier = modifier, - icon = Icons.Rounded.Grass, - contentDescription = stringResource(Res.string.env_metrics_log), - label = stringResource(Res.string.soil_moisture), - text = moisture, - contentColor = contentColor, - ) -} - -@Composable -fun PaxcountInfo( - pax: String, - modifier: Modifier = Modifier, - contentColor: Color = MaterialTheme.colorScheme.onSurface, -) { - IconInfo( - modifier = modifier, - icon = Icons.Rounded.People, - contentDescription = stringResource(Res.string.pax_metrics_log), - label = stringResource(Res.string.pax), - text = pax, - contentColor = contentColor, - ) -} - -@Composable -fun AirQualityInfo( - iaq: String, - modifier: Modifier = Modifier, - contentColor: Color = MaterialTheme.colorScheme.onSurface, -) { - IconInfo( - modifier = modifier, - icon = Icons.Rounded.Air, - contentDescription = stringResource(Res.string.env_metrics_log), - label = stringResource(Res.string.iaq), - text = iaq, - contentColor = contentColor, - ) -} - -@Composable -fun PowerInfo( - value: String, - modifier: Modifier = Modifier, - label: String? = null, - contentColor: Color = MaterialTheme.colorScheme.onSurface, -) { - IconInfo( - modifier = modifier, - icon = Icons.Rounded.ElectricBolt, - contentDescription = stringResource(Res.string.env_metrics_log), - label = label, - text = value, - contentColor = contentColor, - ) -} - -@Composable -fun HardwareInfo( - hwModel: String, - modifier: Modifier = Modifier, - contentColor: Color = MaterialTheme.colorScheme.onSurface, -) { - IconInfo( - modifier = modifier, - icon = Icons.Rounded.Router, - contentDescription = "Hardware Model", - text = hwModel, - style = MaterialTheme.typography.labelSmall, - contentColor = contentColor, - ) -} - -@Composable -fun RoleInfo(role: String, modifier: Modifier = Modifier, contentColor: Color = MaterialTheme.colorScheme.onSurface) { - IconInfo( - modifier = modifier, - icon = Icons.Rounded.Work, - contentDescription = stringResource(Res.string.role), - text = role, - style = MaterialTheme.typography.labelSmall, - contentColor = contentColor, - ) -} - -@Composable -fun NodeIdInfo(id: String, modifier: Modifier = Modifier, contentColor: Color = MaterialTheme.colorScheme.onSurface) { - IconInfo( - modifier = modifier, - icon = Icons.Rounded.Fingerprint, - contentDescription = stringResource(Res.string.node_id), - text = id, - style = MaterialTheme.typography.labelSmall, - contentColor = contentColor, - ) -} diff --git a/feature/node/src/screenshotTestFdroidDebug/reference/org/meshtastic/feature/node/NodeItemScreenshotTest/NodeInfoSignalTest_748aa731_0.png b/feature/node/src/screenshotTestFdroidDebug/reference/org/meshtastic/feature/node/NodeItemScreenshotTest/NodeInfoSignalTest_748aa731_0.png new file mode 100644 index 000000000..bd0192643 Binary files /dev/null and b/feature/node/src/screenshotTestFdroidDebug/reference/org/meshtastic/feature/node/NodeItemScreenshotTest/NodeInfoSignalTest_748aa731_0.png differ diff --git a/feature/node/src/screenshotTestFdroidDebug/reference/org/meshtastic/feature/node/NodeItemScreenshotTest/NodeInfoSimpleTest_748aa731_0.png b/feature/node/src/screenshotTestFdroidDebug/reference/org/meshtastic/feature/node/NodeItemScreenshotTest/NodeInfoSimpleTest_748aa731_0.png new file mode 100644 index 000000000..bd0192643 Binary files /dev/null and b/feature/node/src/screenshotTestFdroidDebug/reference/org/meshtastic/feature/node/NodeItemScreenshotTest/NodeInfoSimpleTest_748aa731_0.png differ diff --git a/feature/node/src/screenshotTestFdroidDebug/reference/org/meshtastic/feature/node/NodeItemScreenshotTest/NodeInfoStatusTest_748aa731_0.png b/feature/node/src/screenshotTestFdroidDebug/reference/org/meshtastic/feature/node/NodeItemScreenshotTest/NodeInfoStatusTest_748aa731_0.png new file mode 100644 index 000000000..bd0192643 Binary files /dev/null and b/feature/node/src/screenshotTestFdroidDebug/reference/org/meshtastic/feature/node/NodeItemScreenshotTest/NodeInfoStatusTest_748aa731_0.png differ diff --git a/feature/node/src/screenshotTestFdroidDebug/reference/org/meshtastic/feature/node/NodeItemScreenshotTest/NodeInfoTest_748aa731_41783942_1.png b/feature/node/src/screenshotTestFdroidDebug/reference/org/meshtastic/feature/node/NodeItemScreenshotTest/NodeInfoTest_748aa731_41783942_1.png new file mode 100644 index 000000000..bd0192643 Binary files /dev/null and b/feature/node/src/screenshotTestFdroidDebug/reference/org/meshtastic/feature/node/NodeItemScreenshotTest/NodeInfoTest_748aa731_41783942_1.png differ diff --git a/feature/node/src/screenshotTestFdroidDebug/reference/org/meshtastic/feature/node/NodeItemScreenshotTest/NodeInfoTest_748aa731_41783942_2.png b/feature/node/src/screenshotTestFdroidDebug/reference/org/meshtastic/feature/node/NodeItemScreenshotTest/NodeInfoTest_748aa731_41783942_2.png new file mode 100644 index 000000000..bd0192643 Binary files /dev/null and b/feature/node/src/screenshotTestFdroidDebug/reference/org/meshtastic/feature/node/NodeItemScreenshotTest/NodeInfoTest_748aa731_41783942_2.png differ diff --git a/feature/node/src/screenshotTestFdroidDebug/reference/org/meshtastic/feature/node/NodeItemScreenshotTest/NodeInfoTest_748aa731_41783942_3.png b/feature/node/src/screenshotTestFdroidDebug/reference/org/meshtastic/feature/node/NodeItemScreenshotTest/NodeInfoTest_748aa731_41783942_3.png new file mode 100644 index 000000000..bd0192643 Binary files /dev/null and b/feature/node/src/screenshotTestFdroidDebug/reference/org/meshtastic/feature/node/NodeItemScreenshotTest/NodeInfoTest_748aa731_41783942_3.png differ diff --git a/feature/node/src/screenshotTestFdroidDebug/reference/org/meshtastic/feature/node/NodeItemScreenshotTest/NodeInfoTest_748aa731_41783942_4.png b/feature/node/src/screenshotTestFdroidDebug/reference/org/meshtastic/feature/node/NodeItemScreenshotTest/NodeInfoTest_748aa731_41783942_4.png new file mode 100644 index 000000000..bd0192643 Binary files /dev/null and b/feature/node/src/screenshotTestFdroidDebug/reference/org/meshtastic/feature/node/NodeItemScreenshotTest/NodeInfoTest_748aa731_41783942_4.png differ