Skip to content

fix(node): list and detail usability fixes#4336

Merged
jamesarich merged 6 commits into
mainfrom
fix/signal-strength-logs
Jan 27, 2026
Merged

fix(node): list and detail usability fixes#4336
jamesarich merged 6 commits into
mainfrom
fix/signal-strength-logs

Conversation

@jamesarich

Copy link
Copy Markdown
Collaborator

fixes several issues noted during testing:

  • node details
    • hide actions not relevant to locally connected node
    • add action to show signal logs
    • hide signal strength for hops != 0
    • fix dead/laggy metadata and remote admin actions
  • node list
    • qr code icon
    • fix dead/laggy filter actions

This commit adds a new entry for "Signal" to the telemetric actions section. This allows users to view signal-related logs and information within the telemetry features.

The new `TelemetricFeature` is configured with the appropriate title, icon, and logs type, but does not have a request action.

Signed-off-by: James Rich <2199651+jamesarich@users.noreply.github.com>
This commit updates the UI to conditionally display signal strength information (`SNR`, `RSSI`) and the corresponding telemetric action button only for directly connected nodes (i.e., when `hopsAway` is 0).

This prevents confusion by hiding irrelevant signal data for nodes that are connected through the mesh via other nodes.

### Key Changes:
- **`NodeDetailsSection.kt`**: The `SignalRow` is now only rendered if `node.hopsAway == 0`.
- **`TelemetricActionsSection.kt`**: The "Signal" telemetric action is made visible only when `hopsAway == 0`.

Signed-off-by: James Rich <2199651+jamesarich@users.noreply.github.com>
This commit updates the icon used for the "Share Contact" action on the Contacts screen. The previous generic hardware model icon has been replaced with a more intuitive `QrCode2` icon to better represent the action of sharing contact information, likely via a QR code.

Signed-off-by: James Rich <2199651+jamesarich@users.noreply.github.com>
This commit updates the `TelemetricActionsSection` to display telemetry actions not only for features visible on the node, but also for any logs that are available, even if the corresponding feature is not currently enabled or visible on the device.

Signed-off-by: James Rich <2199651+jamesarich@users.noreply.github.com>
This commit refactors the device details screen to hide certain actions when viewing the local device. This prevents users from performing actions on their own node that are intended for remote nodes, such as requesting user info, traceroute, or favoriting.

### Key Changes:
- **`DeviceActions.kt`**: Conditionally renders `ManagementActions` (ignore, mute, remove) and the favorite button only if the node is not the local device.
- **`PositionSection.kt`**: Hides the `PositionActionButtons` for the local device.
- **`TelemetricActionsSection.kt`**:
    - Adds an `isLocal` parameter to control UI visibility.
    - Hides "Request User Info", "Traceroute", and "View Signal History" actions for the local device.

Signed-off-by: James Rich <2199651+jamesarich@users.noreply.github.com>
@codecov

codecov Bot commented Jan 27, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 0.00%. Comparing base (78c2a11) to head (70b0c6f).
⚠️ Report is 2 commits behind head on main.
✅ All tests successful. No failed tests found.

Additional details and impacted files
@@          Coverage Diff          @@
##            main   #4336   +/-   ##
=====================================
  Coverage   0.00%   0.00%           
=====================================
  Files          3       3           
  Lines         28      28           
  Branches       8       8           
=====================================
  Misses        28      28           

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

This commit refactors the Node Detail screen by removing the Molecule presenter (`NodeDetailPresenter`) and migrating its logic into a standard Hilt `ViewModel` (`NodeDetailViewModel`).

This change simplifies the architecture by centralizing state management within the ViewModel, utilizing `StateFlow` with `flatMapLatest` and `combine` to reactively build the UI state from various data sources. The `molecule-runtime` dependency has been removed as it is no longer needed.

Additionally, the `NodeDetailScreen` has been updated to use `LazyColumn` for improved performance and a more standard implementation, replacing the previous `Column` with a `verticalScroll` modifier. The `ListItem` component was also updated to correctly handle click and long-click states.

Signed-off-by: James Rich <2199651+jamesarich@users.noreply.github.com>
@jamesarich jamesarich force-pushed the fix/signal-strength-logs branch from 97dd61d to 70b0c6f Compare January 27, 2026 18:01
@jamesarich jamesarich added this pull request to the merge queue Jan 27, 2026
github-merge-queue Bot pushed a commit that referenced this pull request Jan 27, 2026
Signed-off-by: James Rich <2199651+jamesarich@users.noreply.github.com>
Merged via the queue into main with commit dff3e60 Jan 27, 2026
9 checks passed
@jamesarich jamesarich deleted the fix/signal-strength-logs branch January 27, 2026 19:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant