feat(node): label SNR quality on the Node Details signal row - #6703
feat(node): label SNR quality on the Node Details signal row#6703beecho01 wants to merge 2 commits into
Conversation
SignalRow only showed the raw SNR/RSSI values, unlike the node-list signal pill which already labels quality via determineSignalQuality. Reuses that existing, tested logic to show e.g. "-17.0 dB - Good" for SNR, matching the value-then-quality format already used by SignalInfo.kt. RSSI is left unlabeled: the app's existing signal- quality logic is SNR-only, since RSSI alone can't indicate quality without the noise floor. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Plus Run ID: ⛔ Files ignored due to path filters (8)
📒 Files selected for processing (3)
📝 WalkthroughWalkthroughNode details now display modem-aware SNR quality labels with matching colors. RSSI remains numeric-only. Compose UI tests cover SNR thresholds, unset readings, and RSSI rendering. ChangesNode signal quality
Estimated code review effort: 2 (Simple) | ~10 minutes Merge Risk: 🟡 Moderate · up to The Node Details SNR label currently uses a middle-dot separator instead of the required value-then-quality format with " - ", so the UI does not match the stated product convention and its test expectation. This is localized and straightforward to fix before merge. Suggested reviewers: 🚥 Pre-merge checks | ✅ 6✅ Passed checks (6 passed)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
Thanks for this, it's a really nice first PR. Reusing Three small things and then I'm happy to get this in:
No rush on any of it. Thanks again for the test coverage, especially the "SNR row is absent rather than mislabeled" case. |
VerificationRow's KDoc picked up "tappable" -> "tap-able" unrelated to the SNR quality label work; revert to keep it consistent with AutoLinkText.kt, NodeSignedStatusIcon.kt, and FdroidMapOverlayRenderer.kt. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
|
Hi @jamesarich, These should all be complete now:
Thanks for the thorough review, appreciate you catching all three. Let me know if you need or recommend anything more. |
Why
The node list already labels signal quality (e.g. "-17.0 dB · Good") via
SignalInfo.kt's pill, usingdetermineSignalQuality/QualityfromLoraSignalIndicator.kt(#5903). The Node Details screen'sSignalRowwas missed - it only showed the raw SNR/RSSI numbers, with no interpretation.What changed
SignalRow(feature/node/.../NodeDetailsSection.kt) now labels SNR with its quality word, reusing the existing, already-testeddetermineSignalQuality- no new thresholds introduced."<raw value> · <quality>"(e.g."-17.0 dB · Good"), matching the value-then-quality order already used by the node-list pill inSignalInfo.kt, rather than inventing a new convention.InfoItem(NodeDetailComponents.kt) gained one optionalvalueColorparameter (default unchanged) so the SNR value can be tinted by quality, same as elsewhere in the app.LoraSignalIndicatorTest'sRSSI does not influence the rating), because RSSI alone can't indicate quality without the noise floor - adding a quality word to RSSI here would contradict that existing, tested design decision.Test plan
feature/node/src/jvmTest/.../SignalRowQualityLabelTest.kt- 6 desktop Compose UI tests (see the comment infeature/node/build.gradle.ktsfor why Compose UI tests live injvmTest) covering all 4 quality bands (Good/Fair/Bad/None) at theLONG_FASTpreset boundaries, confirms RSSI shows only the raw value, and confirms the SNR row is absent (not mislabeled) when a node has no SNR reading.LoraSignalIndicatorTest(the underlying quality logic) is unchanged and still passing - this PR only adds a new call site.ScreenshotNodeDetailsSection,ScreenshotNodeDetailsSectionSigned,ScreenshotNodeDetailContentLocal,ScreenshotNodeDetailContentRemote.spotlessApply spotlessCheck detekt assembleDebug test allTestsandkmpSmokeCompile.Co-Authored-By: Claude Sonnet 5 noreply@anthropic.com