Skip to content

revert(map): back out per-waypoint DM/channel recipient picker (#6218) - #6284

Merged
jamesarich merged 1 commit into
mainfrom
claude/revert-pr-6218-6f9bb2
Jul 15, 2026
Merged

revert(map): back out per-waypoint DM/channel recipient picker (#6218)#6284
jamesarich merged 1 commit into
mainfrom
claude/revert-pr-6218-6f9bb2

Conversation

@jamesarich

@jamesarich jamesarich commented Jul 15, 2026

Copy link
Copy Markdown
Collaborator

Reverts #6218.

Per maintainer discussion, per-waypoint channel/DM routing is a departure from
Meshtastic's model where the firmware — not the user — decides where a packet
goes. Every packet already carries channel/position info, and asking regular users
to manually direct each waypoint adds significant UI complexity for little gain.
The intended behavior is to align waypoints with position handling: the first
precision-position channel is the one used, managed by firmware position logic
rather than an Android-side picker.

This backs out the "Send to" recipient picker added to the waypoint editor and
restores the prior broadcast-only behavior. The underlying
BaseMapViewModel.sendWaypoint contactKey plumbing predates #6218 and is left
intact — only the UI picker and the sort-preference refactor it introduced are
reverted.

🧹 Chores

  • Revert the waypoint recipient picker (EditWaypointDialog "Send to" row +
    WaypointRecipientPicker) — waypoints broadcast to the primary channel again.
  • Revert the shared UiPrefs.nodeSortOption / NodeSortOption.fromOrdinal
    extraction that feat(map): send a waypoint as a DM or to a specific channel #6218 introduced solely to feed the picker's node list;
    NodeFilterPreferences returns to its inline ordinal mapping.
  • Remove the waypoint_recipient_broadcast, waypoint_recipient_channel, and
    waypoint_send_to string resources.

Testing Performed

Summary by CodeRabbit

  • Changes
    • Simplified waypoint editing by removing recipient and channel selection from the waypoint editor.
    • Waypoint sending, deletion, and geofence box authoring now use streamlined flows.
    • Map views provide more consistent node and traceroute data while displaying waypoints.
    • Node sorting now safely falls back to “Via Favorite” when an invalid saved preference is encountered.

…6218)"

This reverts commit 8f3bf00.

Per maintainer discussion, per-waypoint channel/DM routing is a
departure from Meshtastic's model where the firmware — not the user —
decides where a packet goes. Every packet carries channel/position
info, and having users manually direct each waypoint adds significant
UI complexity for regular users. The intended behavior is to align
with position: the first precision-position channel is the one used,
managed by firmware position logic rather than an Android-side picker.

Backing this out restores the prior broadcast-only waypoint editor. The
underlying BaseMapViewModel.sendWaypoint contactKey plumbing predates
this PR and is left intact; only the UI picker and the sort-preference
extraction it introduced are reverted.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@jamesarich
jamesarich requested a review from garthvh July 15, 2026 21:47
@coderabbitai

coderabbitai Bot commented Jul 15, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: 8bc1c414-6c5b-44e3-8ced-cf8aca44c84c

📥 Commits

Reviewing files that changed from the base of the PR and between b4ed771 and 218ec0c.

📒 Files selected for processing (16)
  • .skills/compose-ui/strings-index.txt
  • androidApp/src/fdroid/kotlin/org/meshtastic/app/map/MapView.kt
  • androidApp/src/fdroid/kotlin/org/meshtastic/app/map/MapViewModel.kt
  • androidApp/src/google/kotlin/org/meshtastic/app/map/MapView.kt
  • androidApp/src/google/kotlin/org/meshtastic/app/map/MapViewModel.kt
  • core/model/src/commonMain/kotlin/org/meshtastic/core/model/NodeSortOption.kt
  • core/repository/src/commonMain/kotlin/org/meshtastic/core/repository/AppPreferences.kt
  • core/resources/src/commonMain/composeResources/values/strings.xml
  • feature/map/build.gradle.kts
  • feature/map/src/androidHostTest/kotlin/org/meshtastic/feature/map/component/EditWaypointDialogTest.kt
  • feature/map/src/androidMain/kotlin/org/meshtastic/feature/map/component/EditWaypointDialog.kt
  • feature/map/src/androidMain/kotlin/org/meshtastic/feature/map/component/WaypointRecipientPicker.kt
  • feature/map/src/commonMain/kotlin/org/meshtastic/feature/map/BaseMapViewModel.kt
  • feature/map/src/commonMain/kotlin/org/meshtastic/feature/map/SharedMapViewModel.kt
  • feature/map/src/commonTest/kotlin/org/meshtastic/feature/map/BaseMapViewModelTest.kt
  • feature/node/src/commonMain/kotlin/org/meshtastic/feature/node/list/NodeFilterPreferences.kt
💤 Files with no reviewable changes (11)
  • feature/map/src/androidMain/kotlin/org/meshtastic/feature/map/component/WaypointRecipientPicker.kt
  • feature/map/src/commonMain/kotlin/org/meshtastic/feature/map/SharedMapViewModel.kt
  • feature/map/src/androidHostTest/kotlin/org/meshtastic/feature/map/component/EditWaypointDialogTest.kt
  • feature/map/build.gradle.kts
  • core/model/src/commonMain/kotlin/org/meshtastic/core/model/NodeSortOption.kt
  • .skills/compose-ui/strings-index.txt
  • core/resources/src/commonMain/composeResources/values/strings.xml
  • core/repository/src/commonMain/kotlin/org/meshtastic/core/repository/AppPreferences.kt
  • androidApp/src/google/kotlin/org/meshtastic/app/map/MapViewModel.kt
  • feature/map/src/commonTest/kotlin/org/meshtastic/feature/map/BaseMapViewModelTest.kt
  • androidApp/src/fdroid/kotlin/org/meshtastic/app/map/MapViewModel.kt

📝 Walkthrough

Walkthrough

Waypoint recipient selection and contact-key routing were removed from map editing. Map view models now use simplified waypoint sending and node flows, while platform map wiring, preferences, resources, build configuration, and related tests were updated.

Changes

Waypoint and map simplification

Layer / File(s) Summary
Map model and preference contracts
feature/map/src/commonMain/..., feature/node/src/commonMain/..., core/model/..., core/repository/..., androidApp/src/*/kotlin/.../MapViewModel.kt, feature/map/src/commonTest/...
Map model constructors and waypoint sending APIs were simplified; node flows now read directly from repositories, and node sort mapping moved into node preferences.
Recipient-free waypoint editor
feature/map/src/androidMain/.../component/EditWaypointDialog.kt, feature/map/build.gradle.kts, core/resources/.../strings.xml, .skills/compose-ui/strings-index.txt
Recipient selection UI, contact-key callbacks, related strings, and host-test configuration were removed.
Platform map integration
androidApp/src/fdroid/.../map/MapView.kt, androidApp/src/google/.../map/MapView.kt
Map editing callbacks no longer carry contact keys, geofence authoring state was reduced, node collection usage was adjusted, and expiry sending was simplified.

Estimated code review effort: 3 (Moderate) | ~25 minutes

Suggested reviewers: garthvh, joeyleake

🚥 Pre-merge checks | ✅ 4
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately summarizes the main revert: removing per-waypoint DM/channel recipient picker behavior.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@jamesarich
jamesarich marked this pull request as ready for review July 15, 2026 22:03
@jamesarich
jamesarich enabled auto-merge July 15, 2026 22:15
@jamesarich
jamesarich added this pull request to the merge queue Jul 15, 2026
Merged via the queue into main with commit 0632993 Jul 15, 2026
17 of 18 checks passed
@jamesarich
jamesarich deleted the claude/revert-pr-6218-6f9bb2 branch July 15, 2026 22:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant