-
-
Notifications
You must be signed in to change notification settings - Fork 143
feat: Jellyfin SyncPlay support #735
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
irican-f
wants to merge
61
commits into
DonutWare:develop
Choose a base branch
from
irican-f:syncplay
base: develop
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from 17 commits
Commits
Show all changes
61 commits
Select commit
Hold shift + click to select a range
a70818d
feat: Implement Jellyfin SyncPlay support
irican-f 63d337f
feat: enhance SyncPlay integration and synchronized playback
irican-f 1519be7
feat: Implement app lifecycle handling for SyncPlay
irican-f 44af2de
fix: Set SyncPlay bottom sheet background to transparent
irican-f 6402639
feat: Add visual indicators for SyncPlay command processing
irican-f f889b1d
refactor: Modularize SyncPlay logic and reorganize models
irican-f 57c4dac
feat: Implement localization for SyncPlay
irican-f 51741cc
fix: Ensure SyncPlay FAB is visible in side navigation bar
irican-f b64a1f1
feat: integrate SyncPlay with native Android player
fifty-filip 0f30b28
feat: integrate SyncPlay-aware user actions and improve WebSocket log…
fifty-filip 1a73ac0
chore: improve SyncPlay WebSocket logging
fifty-filip 9c36c89
Merge branch 'develop' into syncplay
irican-f 1cfdd41
feat: improve SyncPlay synchronization and playback reliability
irican-f d36990d
feat: improve SyncPlay synchronization and buffering logic
irican-f 1969ec1
Merge branch 'develop' into syncplay
irican-f fa5960a
feat: implement SyncPlay command overlay for native Android player
irican-f cffcccc
feat: localize SyncPlay command overlay labels
irican-f 92a62bc
Merge branch 'develop' into syncplay
8db485f
feat: improve SyncPlay synchronization and native player state inference
irican-f 8689383
Merge branch 'develop' into syncplay
irican-f c697e8c
fix(*): merge conflicts
irican-f c66fdcc
Merge branch 'develop' into syncplay
irican-f 2ab1978
feat: implement playback drift correction and enhance SyncPlay synchr…
irican-f 887be69
feat: improve SyncPlay seek handling and fix local track-switch autoplay
irican-f aa61c04
lint: fix code formatting and cleanup in SyncPlay components
irican-f caea38f
feat: refactor SyncPlay command handling to use type-safe enums acros…
irican-f 5fc0d82
feat: improve SyncPlay session management and video player route hand…
irican-f 152dfef
feat: refactor video player route state management
irican-f 465cd16
fix: revert changes to KotlinOptions for pigeons package imports
irican-f 0df2192
fix: android build
irican-f a24855e
Merge branch 'develop' into syncplay
irican-f 03274b4
feat: enhance SyncPlay stability, UI feedback, and track switching
irican-f bd249cd
fix(syncplay): reset transient lifecycle state on leave/disconnect
irican-f 3a99f0b
fix(syncplay): abort _startPlayback when user leaves mid-flight
irican-f d15986c
fix(syncplay): reset buffering state on every loadPlaybackItem and _s…
irican-f bab529d
fix(syncplay): auto-load media when joining an active group
irican-f 9963c48
fix(syncplay): pause locally when another client buffers
irican-f 6e117d8
feat(syncplay): expose requestNextItem / requestPreviousItem
irican-f 849f39d
refactor(syncplay): use NextItem/PreviousItem instead of SetNewQueue …
irican-f fb9942b
fix(syncplay): trigger startPlayback on PlayQueue NextItem/PreviousIt…
irican-f 68bf896
feat(syncplay): show 'Switching item…' overlay during next-episode re…
irican-f 197c6e7
fix(syncplay): use estimated live position when reloading for track s…
irican-f 799d02f
fix(syncplay): stop stacking two FABs in the side navigation rail
irican-f 8047919
docs(syncplay): document regression scenarios
irican-f 4ef6786
chore: remove unnecessary braces in string interpolation
irican-f e5d8215
fix(syncplay): don't await openPlayer in _startPlayback
irican-f 7d7aed9
fix(syncplay): fully stop playback when closing player while in a group
irican-f 21105d6
fix(syncplay): pop player route immediately on close, don't await stop
irican-f e6c8dae
feat(syncplay): optimistic local load on next/previous episode
irican-f 0226b08
feat(syncplay): optimistic local load for setNewQueue paths too
irican-f 5a95e44
revert(syncplay): use setNewQueue for next/previous episode advance
irican-f 0cd7458
fix(syncplay): don't override post-Seek Ready with isPlaying:false
irican-f 05bb52a
fix(syncplay): send authoritative Ready(isPlaying:true) after initial…
irican-f 28bace5
fix(syncplay): track switch no longer pauses other users
irican-f 34bdae8
fix(syncplay): rejoin no longer rewinds the rest of the group
irican-f 0246010
chore: format syncplay_correction_test.dart at 120-col line length
irican-f c30d765
fix(syncplay): Android-TV reliability + post-disconnect resilience
irican-f 54b5f77
fix(style): lint
irican-f f8c697f
fix(syncplay): stop duplicate participants, false join failure & WS i…
irican-f a478a16
fix(syncplay): small fixes
irican-f 808ece5
refactor(websocket): decouple shared Jellyfin WebSocket from SyncPlay
irican-f File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
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
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
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
|
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Same here I'm not even sure we need to use these callbacks. The player already reports back it's state to flutter we could probably use that for reporting seek/pause/play states. That way we don't rely on any additional kotlin implementation. |
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
Oops, something went wrong.
Oops, something went wrong.
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.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Probably better to move these callbacks to the ExoPlayer and listen to state changes from the player itself.