Conversation
Changes: - Implemented "Smart Triggers" to broadcast a burst of packets immediately on App Launch, System Wake, and Network Change. - Moved UDP discovery from `ScannerView` to the global app lifecycle to ensure continuous background operation. - Added `broadcastBurst()` to send rapid packet sequences for reliable delivery to passive listeners. This ensures the Android app can instantly discover the Mac without keeping its own broadcaster active, significantly reducing mobile battery drain. Ref: Logic is inspired by KDE Connect. Note: The implementation was more than partially vibe coded (with antigravity) but in my testing it works!!
feat: Smart auto-connect with "Active Burst, Passive Listen" [2/2]
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.
This pull request introduces several key improvements to trial management, device identification, and network discovery in the app. The most significant updates include enhanced device identification logic, a new data integrity check for trial activations, expanded device metadata reporting, and smarter UDP discovery triggers. Additionally, there are updates to Plus entitlement logic and a version rollback in the appcast.
Trial management and device identification:
HardwareInfoutility to retrieve hardware UUID, device name, model, and OS version, and updated device identifier logic inTrialManagerto prioritize hardware UUID for more stable identification, with multiple fallbacks. [1] [2]TrialManagerthat verifies a hash of the trial state (expiry, device ID, secret) and clears the trial if tampering is detected; hash is updated on activation and validated at startup. [1] [2] [3] [4]UDP discovery and networking:
UDPDiscoveryManagerto automatically trigger broadcast bursts on system wake and network changes usingNWPathMonitorand system notifications, improving device discovery reliability. Also, moved UDP discovery startup to app launch for global management. [1] [2] [3]Plus entitlement and license logic:
isPlusis only set tofalseif the trial is not active, and to setisPlustotrueif license validation succeeded today. [1] [2] [3] [4]Other: