Repository navigation
Watch party: host controls, friend invites, chat history, better sync - #67
Closed
professorDeveloper wants to merge 1 commit into
Closed
professorDeveloper wants to merge 1 commit into
professorDeveloper wants to merge 1 commit into
Conversation
- Lobby host card: room size, host-only playback, lock room, wait for everyone, all live over party:settings - Invite friends sheet on the existing invite endpoint, with per-friend cooldowns - Make host / remove from party from the member bar (tap, long-press or D-pad), and a buffering badge per member - Chat history from party:state plus joined/left/host/removed lines - party:ping clock offset re-bases each sync so a slow link no longer trails the host by its one-way trip - Guests report buffering; with wait for everyone on, the host holds up to 15 s for a guest stuck over 3 s - A party invite opened while signed out is kept through sign-in or first-run setup and opens once afterwards - apple-app-site-association now lists /party/*, /link/* and /pair/*
Owner
Author
|
Combined into one PR against release/3.2.1. |
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.
App side of the Watch Party round. It needs professorDeveloper/sozo-backend#80 for the new features. Against a server without that PR the app behaves as before: no history, no pong so no clock offset, and the new settings, kick and transfer events are ignored by the server.
What changes
Lobby (host)
party:settingsand comes back to everyone, so the room stays the only state./api/social/friends. Sozo's social graph is mutual friends, not follows, so "people you follow or who follow you" maps to this list.GET /:code/invitesand from429responses.Chat
WatchPartyService.chatLog: history fromparty:statefirst, then live lines. Joiners and reconnecting users see what was said.Sync
PartyClockestimates the server clock offset fromparty:ping/party:pong, keeping the fastest of the last 8 round trips.applyingRemoteloop guard are unchanged.PartyWaitPolicy): when a guest has buffered for more than 3 s, the host's player pauses and tells the room. It resumes when nobody is buffering, or after 15 s at most. After giving up it ignores that same stall, so it does not keep pausing.Deferred invite
PendingPartyCode(Hive, 1-hour TTL) through sign-in, sign-up or first-run setup.goAfterAuthor Home's first frame. The two share one navigation.Housekeeping
deeplink/apple-app-site-associationnow matches the live copy in sozo-web: it adds/party/*,/link/*and/pair/*.Strings: 24 new
watch_party.*keys, translated into all 16 locales.Player files: only
player_page.party.dartchanged. The wait-for-all dispatch lives in the service, soplayer_page.dartneeded no new import.Tests
test/features/watch_party/party_sync_test.dart:test/features/watch_party/pending_party_code_test.dart: the pending-code handoff (normalize, open once, TTL, cancel).Not verified
/party/:code) is not changed. It lives in the separate sozo-web repo (open/index.html), so I did not add the copy-code-to-clipboard there.