Repository navigation
Conversation
Collaborator
|
This is not how we want to solve this problem, it is simply unnecessarily complex. Full data syncing should be generic to support a full cloud sync solution. Handing off current progress should use the official android API. |
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.
Prototype explicit title/episode/progress sharing between two installations on a local network. Receive mode lasts two minutes for one transfer, displays a twelve-character temporary code, supports DNS-SD discovery or manual local IP/port, and requires receiver confirmation before opening a title. A receiver may search for the title instead. No whole-history synchronization, background receiver or automatic playback is added.
Validate a bounded, flat JSON schema without polymorphic deserialization. Limit pending progress to the receiving account, exact source/URL and a ten-minute window, and apply it only after real episodes have loaded. Close receiving sockets/discovery when leaving the screen. Guard future local-network permission requests by runtime and target SDK.
The experimental transport uses ephemeral P-256 ECDH and AES-GCM with the displayed code in key derivation. It is a custom, unaudited protocol; do not treat it as production-ready pairing. Two-Android-device interoperability, cancellation/lifecycle behavior, Android37 permissions, provider compatibility and protocol/security review are still required before merging. Both devices need this variant. Tests cover transport delivery/rejection/closure and invalid payloads, not those physical scenarios.
Validation:
:library:checkKotlinAbi,:app:testPrereleaseDebugUnitTest, and:app:assemblePrereleaseDebugpassed locally. 18 JVM tests passed without failures or errors. Lint is left to this PR's GitHub workflow; the complete integration branch previously passed Lint. These results are not physical-device validation.AI disclosure: implementation, code review and automated test execution used OpenAI Codex assistance, as required by AI-POLICY.md. This draft submits the implemented work for human review; pending physical checks and limitations above are not claimed complete. No changes to provider source code or the projector launcher are included.