Skip to content

Repeater coverage lines: a switch, off by default - #41

Merged
MrAlders0n merged 1 commit into
devfrom
feat/repeater-coverage-lines-switch
Oct 19, 2026
Merged

MrAlders0n merged 1 commit into
devfrom
feat/repeater-coverage-lines-switch

Conversation

@MrAlders0n

@MrAlders0n MrAlders0n commented Oct 19, 2026 •

Copy link
Copy Markdown
Contributor

Refs MeshMapper/MeshMapper_Project#601 (reopened from the app: "Issue still there").

What

Selecting a repeater draws a dashed line from it to every square that heard it (up to 5000). Near a busy repeater the lines bury the squares. The web already lets you hide them (its "Repeater Coverage" layer); the app had no way to.

New switch: Settings > Map > Coverage Overlay > Repeater Coverage Lines, off by default.

  • Off: a selected repeater shows its squares only. The squares, the background dim and the camera framing are unchanged, and the squares keep their status colours (the web's lines-off highlight blue is not copied).
  • On: today's behaviour.
  • Flipping it with a repeater selected updates the map at once, with no reselect (web mmRedrawSelectedCoverage parity). Settings is a tab over the still-mounted map, so this applies while Settings is open.
  • Not covered: the tile fan-out (tap a square, lines to the repeaters that heard it). It shares the lines layer, and the switch never touches it.

How

  • UserPreferences.showRepeaterCoverageLines (JSON pref, default false) with its own setter setShowRepeaterCoverageLines. It calls plain notifyListeners(), not _notifyMapNow() and not updatePreferences (which rebuilds the map and clears the antenna/power restored flags).
  • MapWidget applies a flip from a direct provider listener, _onRepeaterCoverageLinesNotify, like the opacity slider. _drawRepeaterCoverage keeps the drawn lines in _repeaterCoverageLines (cleared with the cells in _clearCoverageCells and on style reload), so a flip can redraw or clear them. It still ensures the lines layer before the cells layer, so layer order is unchanged.
  • The flip decision is a pure helper, repeaterCoverageLinesAfterSwitch in coverage_summary.dart: redraw, clear, or leave the layer alone (no repeater coverage drawn, a tapped tile owns the layer, or the lines belong to another repeater).
  • DEVELOPMENT.md "Coverage Connection Lines" documents the switch and corrects the repeater cap (5000, not 250).

Checks

  • flutter analyze: no issues
  • flutter test: all pass (2548, 1 skipped), including the new test/models/user_preferences_repeater_coverage_lines_test.dart and test/utils/repeater_coverage_lines_test.dart
  • New test files run through dart format. Edited files are hand-formatted to match the surrounding style.
  • Not yet checked on a device. On a dense repeater: with the switch off, only the squares show. With the repeater selected, open Settings > Map, flip the switch and come back: the lines appear or disappear without reselecting. Also tap a square with the switch off: its fan-out lines still draw.

Release note

Existing users lose the lines on update, so the note should name the switch, e.g. "Repeater coverage lines are now off by default. Turn them back on in Settings > Map > Repeater Coverage Lines."

Wiki: MeshMapper/MeshMapper_Wiki#41 (Settings Reference entry and the Tap a repeater note)

@MrAlders0n
MrAlders0n merged commit 16bd0fe into dev Oct 19, 2026
1 of 2 checks passed
@MrAlders0n
MrAlders0n deleted the feat/repeater-coverage-lines-switch branch October 19, 2026 17:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant