Release of v1.2.1#17
Merged
MrAlders0n merged 14 commits intomainfrom Apr 1, 2026
Merged
Conversation
…markers changed from purple to cyan, RX markers changed from blue to purple. TX (green) and Trace (cyan) were already aligned. Applies to map markers, noise floor chart, status bar chips, log screen filters, and home screen stats.
…markers changed from purple to cyan, RX markers changed from blue to purple. TX (green) and Trace (cyan) were already aligned. Applies to map markers, noise floor chart, status bar chips, log screen filters, and home screen stats. - Map coverage dots now draw in chronological order instead of by category. When your path crosses over itself, the most recent ping always renders on top regardless of type. - Reduced the thick white outline on map coverage dots to a subtle semi-transparent border, improving readability when markers cluster together. Repeater ID markers retain their original styling.
…nds (TX/RX pings) would work reliably in some sessions but not at all in others.
…nd Active/Hybrid mode buttons are now hidden instead of showing disabled "Zone Full" states. The Passive mode button expands to fill the full control panel width. Applies to portrait, compact, and landscape layouts.
…e while connected. The app would display "Missing contact_uri or iata for registration" instead of resuming online wardriving. The mode switch now correctly re-establishes your zone before authenticating with the server. If zone detection fails (e.g., poor GPS or no internet), a clear error message is shown instead.
…Settings > General. Dot (default, subtle border), Outlined Dot (prominent white border), Pin (teardrop), and Diamond. - GPS Marker: choose your position icon on the map. Arrow (default), Car, Bike, Boat, or Walk. Arrow and Walk rotate with heading; vehicle icons stay upright. - Sound Notifications: now under Settings > General with independent toggles for "Ping Sent" (TX/Discovery) and "Response Received" (repeater echo/RX).
…d-session (every 13-23 min on affected devices). iOS would cache stale keys and all reconnect attempts would fail, requiring a manual forget/re-pair in Settings. The app now detects the pairing error and clears the stale bond automatically before retrying
…[0.3w]) and moved it to a per-ping power field in every API wardrive data post (TX, RX, DISC, TRACE). Previously, the power value embedded in the mesh broadcast fell back to 0.3W for devices not in the model database, causing incorrect wattage in the admin panel even when the user had configured the correct power. Power is now read from user preferences and sent directly to the API with each ping, ensuring accurate reporting regardless of device model recognition.
…le races, and auto-ping guards - Hybrid mode: route blocked TX pings back to hybrid scheduler instead of active-only - Discovery window: increase from 5s to 7s, fix hybrid interval math - Add apple-code 15 to bond error detection - Replace session deadline timer with 15-min idle disconnect timer - Enable heartbeat immediately on connect, keep alive while connected - Add idempotency guard to _fullDisconnectCleanup() for double-call race - Add _disposed flag and connect() guard for controller-closed race - Add reconnect/connection guards to sendPing, sendTxPing, _sendDiscoveryRequest, and all auto-ping timer callbacks - Throttle geofence logs to 1 per 30s with suppressed count
Status: Implementation complete, pending commit Approach Convert PingColors from static const fields to static get properties backed by a swappable palette. Add a colorVisionType user preference. All 7+ files that reference PingColors.txSuccess etc. continue to work without call-site changes -- the getters return the active palette's colors. CVD Types Supported ┌───────────────┬────────────────────────────────────┐ │ Setting │ Description │ ├───────────────┼────────────────────────────────────┤ │ none │ Default (current colors) │ ├───────────────┼────────────────────────────────────┤ │ protanopia │ Red-blind -- confuses red/green │ ├───────────────┼────────────────────────────────────┤ │ deuteranopia │ Green-blind -- confuses red/green │ ├───────────────┼────────────────────────────────────┤ │ tritanopia │ Blue-blind -- confuses blue/yellow │ ├───────────────┼────────────────────────────────────┤ │ achromatopsia │ Total color blindness (monochrome) │ └───────────────┴────────────────────────────────────┘ Palettes (Wong 2011 colorblind-safe colors) Normal -- current app colors unchanged. Protanopia / Deuteranopia (both use same palette since both are red-green CVD): - txSuccess: #0072B2 (blue) -- replaces green - txFail: #D55E00 (vermillion) -- replaces red - txSuccessLegend: #56B4E9 (sky blue) - rx: #CC79A7 (reddish purple) - discSuccess: #56B4E9 (sky blue) - traceSuccess: #009E73 (bluish green) - signalGood/Medium/Bad: #0072B2 / #F0E442 / #D55E00 - repeaterActive/New/Dead/Duplicate: #CC79A7 / #F0E442 / #9E9E9E / #D55E00 Tritanopia: - txSuccess: #009E73 (bluish green) -- green visible - txFail: #D55E00 (vermillion) - txSuccessLegend: #22C55E - rx: #CC79A7 (reddish purple) - discSuccess: #E69F00 (orange) -- replaces cyan - traceSuccess: #D55E00 (vermillion) -- replaces cyan - signalGood/Medium/Bad: #009E73 / #E69F00 / #D55E00 - repeaterActive/New/Dead/Duplicate: #CC79A7 / #E69F00 / #9E9E9E / #D55E00 Achromatopsia: - txSuccess: #E0E0E0 (light) / txFail: #616161 (dark) - txSuccessLegend: #E0E0E0 - rx: #9E9E9E (medium) - discSuccess: #BDBDBD (medium-light) / traceSuccess: #757575 (medium-dark) - signalGood/Medium/Bad: #E0E0E0 / #9E9E9E / #424242 - repeaterActive/New/Dead/Duplicate: #E0E0E0 / #BDBDBD / #616161 / #424242
…g, so you know pings have stopped. Has its own toggle, independent from the master sound setting, so you can wardrive silently and still get alerted on disconnect
…ping timers run independently, so the cached position could be well behind your actual location. Auto-pings now force a fresh GPS read before each ping
MrAlders0n
added a commit
that referenced
this pull request
Apr 1, 2026
* - Aligned dot marker colors with web map coverage squares. Discovery markers changed from purple to cyan, RX markers changed from blue to purple. TX (green) and Trace (cyan) were already aligned. Applies to map markers, noise floor chart, status bar chips, log screen filters, and home screen stats. * - Aligned dot marker colors with web map coverage squares. Discovery markers changed from purple to cyan, RX markers changed from blue to purple. TX (green) and Trace (cyan) were already aligned. Applies to map markers, noise floor chart, status bar chips, log screen filters, and home screen stats. - Map coverage dots now draw in chronological order instead of by category. When your path crosses over itself, the most recent ping always renders on top regardless of type. - Reduced the thick white outline on map coverage dots to a subtle semi-transparent border, improving readability when markers cluster together. Repeater ID markers retain their original styling. * - Fixed inconsistent audio playback on Android where notification sounds (TX/RX pings) would work reliably in some sessions but not at all in others. * - When a zone reports TX capacity full or TX not allowed, Send Ping and Active/Hybrid mode buttons are now hidden instead of showing disabled "Zone Full" states. The Passive mode button expands to fill the full control panel width. Applies to portrait, compact, and landscape layouts. * - Fixed an error when switching from Offline Mode back to Online Mode while connected. The app would display "Missing contact_uri or iata for registration" instead of resuming online wardriving. The mode switch now correctly re-establishes your zone before authenticating with the server. If zone detection fails (e.g., poor GPS or no internet), a clear error message is shown instead. * - Map Marker Style: choose between four coverage marker shapes under Settings > General. Dot (default, subtle border), Outlined Dot (prominent white border), Pin (teardrop), and Diamond. - GPS Marker: choose your position icon on the map. Arrow (default), Car, Bike, Boat, or Walk. Arrow and Walk rotate with heading; vehicle icons stay upright. - Sound Notifications: now under Settings > General with independent toggles for "Ping Sent" (TX/Discovery) and "Response Received" (repeater echo/RX). * Fixed new pin marker * - Fixed iOS reconnect failures when the device drops BLE bond keys mid-session (every 13-23 min on affected devices). iOS would cache stale keys and all reconnect attempts would fail, requiring a manual forget/re-pair in Settings. The app now detects the pairing error and clears the stale bond automatically before retrying * ⏺ TX Power Reporting: Removed radio power from the BLE mesh message ([0.3w]) and moved it to a per-ping power field in every API wardrive data post (TX, RX, DISC, TRACE). Previously, the power value embedded in the mesh broadcast fell back to 0.3W for devices not in the model database, causing incorrect wattage in the admin panel even when the user had configured the correct power. Power is now read from user preferences and sent directly to the API with each ping, ensuring accurate reporting regardless of device model recognition. * Fix hybrid mode fallback, discovery window timing, connection lifecycle races, and auto-ping guards - Hybrid mode: route blocked TX pings back to hybrid scheduler instead of active-only - Discovery window: increase from 5s to 7s, fix hybrid interval math - Add apple-code 15 to bond error detection - Replace session deadline timer with 15-min idle disconnect timer - Enable heartbeat immediately on connect, keep alive while connected - Add idempotency guard to _fullDisconnectCleanup() for double-call race - Add _disposed flag and connect() guard for controller-closed race - Add reconnect/connection guards to sendPing, sendTxPing, _sendDiscoveryRequest, and all auto-ping timer callbacks - Throttle geofence logs to 1 per 30s with suppressed count * Colorblind Accessibility Setting — COMPLETED Status: Implementation complete, pending commit Approach Convert PingColors from static const fields to static get properties backed by a swappable palette. Add a colorVisionType user preference. All 7+ files that reference PingColors.txSuccess etc. continue to work without call-site changes -- the getters return the active palette's colors. CVD Types Supported ┌───────────────┬────────────────────────────────────┐ │ Setting │ Description │ ├───────────────┼────────────────────────────────────┤ │ none │ Default (current colors) │ ├───────────────┼────────────────────────────────────┤ │ protanopia │ Red-blind -- confuses red/green │ ├───────────────┼────────────────────────────────────┤ │ deuteranopia │ Green-blind -- confuses red/green │ ├───────────────┼────────────────────────────────────┤ │ tritanopia │ Blue-blind -- confuses blue/yellow │ ├───────────────┼────────────────────────────────────┤ │ achromatopsia │ Total color blindness (monochrome) │ └───────────────┴────────────────────────────────────┘ Palettes (Wong 2011 colorblind-safe colors) Normal -- current app colors unchanged. Protanopia / Deuteranopia (both use same palette since both are red-green CVD): - txSuccess: #0072B2 (blue) -- replaces green - txFail: #D55E00 (vermillion) -- replaces red - txSuccessLegend: #56B4E9 (sky blue) - rx: #CC79A7 (reddish purple) - discSuccess: #56B4E9 (sky blue) - traceSuccess: #009E73 (bluish green) - signalGood/Medium/Bad: #0072B2 / #F0E442 / #D55E00 - repeaterActive/New/Dead/Duplicate: #CC79A7 / #F0E442 / #9E9E9E / #D55E00 Tritanopia: - txSuccess: #009E73 (bluish green) -- green visible - txFail: #D55E00 (vermillion) - txSuccessLegend: #22C55E - rx: #CC79A7 (reddish purple) - discSuccess: #E69F00 (orange) -- replaces cyan - traceSuccess: #D55E00 (vermillion) -- replaces cyan - signalGood/Medium/Bad: #009E73 / #E69F00 / #D55E00 - repeaterActive/New/Dead/Duplicate: #CC79A7 / #E69F00 / #9E9E9E / #D55E00 Achromatopsia: - txSuccess: #E0E0E0 (light) / txFail: #616161 (dark) - txSuccessLegend: #E0E0E0 - rx: #9E9E9E (medium) - discSuccess: #BDBDBD (medium-light) / traceSuccess: #757575 (medium-dark) - signalGood/Medium/Bad: #E0E0E0 / #9E9E9E / #424242 - repeaterActive/New/Dead/Duplicate: #E0E0E0 / #BDBDBD / #616161 / #424242 * - Disconnect alert: triple-beep sound when BLE drops during wardriving, so you know pings have stopped. Has its own toggle, independent from the master sound setting, so you can wardrive silently and still get alerted on disconnect * Updating the four repeater colors in the default palette to match the web * - Fixed auto-ping using stale GPS positions. The position stream and ping timers run independently, so the cached position could be well behind your actual location. Auto-pings now force a fresh GPS read before each ping
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.
Release of v1.2.1