fix(ui): Prevent NaN values in environment metrics#4316
Merged
Conversation
This commit prevents `NaN` (Not a Number) values from being displayed for dew point and soil temperature in the environment metrics UI. It introduces checks to ensure that `NaN` values, which can occur during sensor readings or calculations, are handled gracefully and not passed to the UI layer. ### Key Changes: - **`EnvironmentMetrics.kt`**: - Added a check to only display the dew point metric if the calculated value is not `NaN`. - Added a `!soilTemperature.isNaN()` check before displaying the soil temperature metric. - **`UnitConversions.kt`**: - The `toTempString` extension function now returns `"--"` if the float value is `NaN`, providing a fallback display string. - **`UnitConversionsTest.kt`**: - Added a new unit test to verify that `toTempString` correctly handles `NaN` inputs. Signed-off-by: James Rich <2199651+jamesarich@users.noreply.github.com>
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #4316 +/- ##
=====================================
Coverage 0.00% 0.00%
=====================================
Files 3 3
Lines 28 28
Branches 8 8
=====================================
Misses 28 28 ☔ View full report in Codecov by Sentry. |
|
The current meshtastic app crashes when tapping on a node with NaN readings in the node list: |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This commit prevents
NaN(Not a Number) values from being displayed for dew point and soil temperature in the environment metrics UI.It introduces checks to ensure that
NaNvalues, which can occur during sensor readings or calculations, are handled gracefully and not passed to the UI layer.Key Changes:
EnvironmentMetrics.kt:NaN.!soilTemperature.isNaN()check before displaying the soil temperature metric.UnitConversions.kt:toTempStringextension function now returns"--"if the float value isNaN, providing a fallback display string.UnitConversionsTest.kt:toTempStringcorrectly handlesNaNinputs.