Meshtastic-Apple/Meshtastic/Extensions
Copilot 93061a824c Implement map legend overlay (#1653)
* Add map legend feature (issue #924)

Implement a map legend overlay accessible from both the mesh map and node
detail map views. The legend explains all visual map elements including:
- Online/offline node markers with pulsing animation
- Detection sensor nodes
- Waypoints
- Position precision circles
- Position history points and heading arrows
- Route start/end markers and route lines
- Convex hull mesh coverage outline

A new "map" button is added to the floating control buttons on both map
views, opening the legend as a sheet.

Agent-Logs-Url: https://github.com/meshtastic/Meshtastic-Apple/sessions/23f75e1e-549b-46a1-84c9-fb0a6375dcd9

Co-authored-by: garthvh <1795163+garthvh@users.noreply.github.com>

* Improve legend descriptions for online/offline nodes

Agent-Logs-Url: https://github.com/meshtastic/Meshtastic-Apple/sessions/23f75e1e-549b-46a1-84c9-fb0a6375dcd9

Co-authored-by: garthvh <1795163+garthvh@users.noreply.github.com>

* map button glass and cleanup

* Update Meshtastic/Views/Nodes/Helpers/Map/MapLegend.swift

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update incorect online timeframe

* Update Meshtastic/Views/Nodes/MeshMap.swift

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update Meshtastic/Views/Nodes/Helpers/Map/NodeMapSwiftUI.swift

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* translation file

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: garthvh <1795163+garthvh@users.noreply.github.com>
Co-authored-by: Garth Vander Houwen <garthvh@yahoo.com>
Co-authored-by: Garth Vander Houwen <garth@meshtastic.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-04-16 06:06:55 +00:00
..
CoreData Add missing SwiftUI #Preview blocks across 65 views (#1649) 2026-04-16 06:06:55 +00:00
Protobufs Extract the generated protobufs into its own Swift package 2024-06-28 11:11:01 -05:00
Bool.swift Conditional modifiers (#1378) 2025-09-07 16:02:47 -07:00
Bundle.swift 2.7.6 Working Changes (#1479) 2025-12-21 12:15:01 -08:00
Character.swift Map settings cleanup 2023-04-25 17:56:57 -07:00
CLLocation.swift True bearing for the node list 2024-08-04 13:13:02 -07:00
CLLocationCoordinate2D.swift This change fixes several lint errors throughout the project, and moves the SwiftLint build phase to before compilation. 2024-05-31 21:48:50 -05:00
Color.swift Alternate App icons (#1359) 2025-08-28 22:54:17 -07:00
Constants.swift Refactor to optional values for TelemetryEntity attributes 2025-02-21 18:23:03 -05:00
Data.swift Map settings cleanup 2023-04-25 17:56:57 -07:00
Date.swift More localization key 2025-05-08 08:59:24 -07:00
Double.swift Lint 2023-08-26 23:17:30 -07:00
FileManager.swift Logging and linting 2024-06-23 16:11:02 -07:00
Float.swift Node filter for environment nodes 2024-07-12 01:28:56 -07:00
Int.swift Update hex formatter to include leading zeros if required to get to 8 characters 2025-07-27 16:22:26 -07:00
Logger+DataDog.swift 2.7.4 Working Changes (#1415) 2025-10-05 17:51:18 -07:00
Logger.swift 2.7.8 Working Changes (#1589) 2026-02-13 16:06:29 -08:00
Measurement.swift Remove broken .reciprocal() 2025-02-07 12:27:55 -08:00
OSLogEntryLog.swift Additional translation key cleanup 2025-04-27 12:50:45 -07:00
String.swift Fix localization keys merged from community pull requests 2025-05-20 21:16:12 -07:00
TimeZone.swift Timezone 2024-04-08 11:41:54 -07:00
UIColor.swift This change fixes several lint errors throughout the project, and moves the SwiftLint build phase to before compilation. 2024-05-31 21:48:50 -05:00
UIImage.swift Map settings cleanup 2023-04-25 17:56:57 -07:00
UIKeyboardType.swift 2.7.7 Working Changes (#1551) 2026-01-15 14:13:40 -08:00
Url.swift 2.7.6 Working Changes (#1479) 2025-12-21 12:15:01 -08:00
UserDefaults.swift 2.7.7 Working Changes (#1551) 2026-01-15 14:13:40 -08:00
View.swift Implement map legend overlay (#1653) 2026-04-16 06:06:55 +00:00