From 7be67ec2d435bd0c45f15ec3eef5cdb4965d0aca Mon Sep 17 00:00:00 2001 From: andrekir Date: Mon, 12 Sep 2022 18:23:59 -0300 Subject: [PATCH] add EnvironmentMetrics to nodes tab --- app/src/main/java/com/geeksville/mesh/NodeInfo.kt | 11 +++++++++++ .../java/com/geeksville/mesh/ui/UsersFragment.kt | 8 ++++++++ app/src/main/res/layout/adapter_node_layout.xml | 13 +++++++++++-- 3 files changed, 30 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/geeksville/mesh/NodeInfo.kt b/app/src/main/java/com/geeksville/mesh/NodeInfo.kt index c2757462..3ad8a19c 100644 --- a/app/src/main/java/com/geeksville/mesh/NodeInfo.kt +++ b/app/src/main/java/com/geeksville/mesh/NodeInfo.kt @@ -156,6 +156,17 @@ data class NodeInfo( val voltage get() = deviceMetrics?.voltage val batteryStr get() = if (batteryLevel in 1..100) String.format("%d%%", batteryLevel) else "" + private fun envFormat(f: String, unit: String, env: Float?): String = + if (env != null && env > 0f) String.format(f + unit, env) else "" + + val envMetricStr + get() = envFormat("%.1f", "°C ", environmentMetrics?.temperature) + + envFormat("%.0f", "%% ", environmentMetrics?.relativeHumidity) + + envFormat("%.1f", "hPa ", environmentMetrics?.barometricPressure) + + envFormat("%.0f", "KΩ ", environmentMetrics?.gasResistance) + + envFormat("%.2f", "V ", environmentMetrics?.voltage) + + envFormat("%.1f", "mA", environmentMetrics?.current) + /** * true if the device was heard from recently * diff --git a/app/src/main/java/com/geeksville/mesh/ui/UsersFragment.kt b/app/src/main/java/com/geeksville/mesh/ui/UsersFragment.kt index 55bdc364..40840eb2 100644 --- a/app/src/main/java/com/geeksville/mesh/ui/UsersFragment.kt +++ b/app/src/main/java/com/geeksville/mesh/ui/UsersFragment.kt @@ -42,6 +42,7 @@ class UsersFragment : ScreenFragment("Users"), Logging { val lastTime = itemView.lastConnectionView val powerIcon = itemView.batteryIcon val signalView = itemView.signalView + val envMetrics = itemView.envMetrics } private val nodesAdapter = object : RecyclerView.Adapter() { @@ -136,6 +137,13 @@ class UsersFragment : ScreenFragment("Users"), Logging { holder.lastTime.text = formatAgo(n.lastHeard) + if (n.envMetricStr.isNotEmpty()) { + holder.envMetrics.text = n.envMetricStr + holder.envMetrics.visibility = View.VISIBLE + } else { + holder.envMetrics.visibility = View.GONE + } + if (n.num == ourNodeInfo?.num) { val info = model.myNodeInfo.value if (info != null) { diff --git a/app/src/main/res/layout/adapter_node_layout.xml b/app/src/main/res/layout/adapter_node_layout.xml index 911bd30f..51e139a8 100644 --- a/app/src/main/res/layout/adapter_node_layout.xml +++ b/app/src/main/res/layout/adapter_node_layout.xml @@ -1,7 +1,6 @@ @@ -116,7 +115,17 @@ android:text="rssi:-40 snr:-8" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintTop_toBottomOf="@id/lastConnectionView" - app:layout_constraintBottom_toBottomOf="parent" /> + app:layout_constraintBottom_toTopOf="@id/envMetrics" /> + +