Added Line Of Sight Feature for repeater placement, Added app wide Units Setting#198
Merged
wel97459 merged 6 commits intozjs81:mainfrom Feb 21, 2026
Merged
Added Line Of Sight Feature for repeater placement, Added app wide Units Setting#198wel97459 merged 6 commits intozjs81:mainfrom
wel97459 merged 6 commits intozjs81:mainfrom
Conversation
…rflow fixes Squashes prior PR commits into one changeset including: LOS map/service/tests, global metric/imperial unit system adoption, notification/BLE safety fixes, app-wide localization backfill/mojibake cleanup, and responsive UI title/overflow hardening.
Contributor
Author
|
Im gonna have to resolve some issues it looks like our prs conflicted @wel97459 |
Contributor
Author
|
This PR has been rebased/cleaned to align with latest upstream merges and keep only the intended LOS + app-wide units work. What’s included:
Validation:
|
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.
Summary
This PR adds a full Line of Sight (LOS) workflow to the map, introduces an app-wide metric/imperial unit system, fixes BLE debug build-phase notifier issues, hardens notification initialization, and improves map labeling/overflow behavior across map experiences.
It also includes LOS service tests, localization improvements.
What Changed
1. New LOS feature
Added LOS screen:
lib/screens/line_of_sight_map_screen.dartAdded LOS computation service:
lib/services/line_of_sight_service.dartAdded tests:
test/services/line_of_sight_service_test.dartLOS capabilities:
400 ft(imperial), equivalent cap in metric.2. Global unit system (app-wide)
Added global setting
unitSystem(metric/imperial) with backward compatibility for older stored key/value reads:lib/models/app_settings.dartlib/services/app_settings_service.dartlib/screens/app_settings_screen.dartUnit setting now applied in:
lib/screens/path_trace_map.dartlib/screens/map_screen.dartlib/screens/channel_message_path_screen.dartlib/screens/telemetry_screen.dart3. BLE debug log runtime fix
Prevented
notifyListeners()during build by deferring notification safely post-frame:lib/services/ble_debug_log_service.dartFixes runtime error:
setState() or markNeedsBuild() called during build4. Notification stability hardening
Added Windows initialization settings and guarded notification show paths against uninitialized plugin usage:
lib/services/notification_service.dartNotes:
5. Map label UX improvements
Added node-name label pills on:
lib/screens/map_screen.dartlib/screens/line_of_sight_map_screen.dartlib/screens/path_trace_map.dartlib/screens/channel_message_path_screen.dartBehavior:
Validation Performed
flutter analyzepassed.flutter testpassed.Notes
Checklist