Fixing Home Page Issues#390
Merged
RadicalMuffinMan merged 3 commits intoJun 6, 2026
Merged
Conversation
Contributor
Author
|
Potentially related but currently unresolved issue - when playback is resumed from the Recent Movies or Recent Shows row (but not CW&NU) the play button doesn't seem to register properly. Flag for follow-up. |
RadicalMuffinMan
requested changes
Jun 6, 2026
- Update ItemDetailViewModel to request UserData for season episodes. - Fetch season episodes on-demand when starting an Episode playback if they are not already loaded in the view model, resolving missing queue/next button. - Retrieve UserData field when loading Series episodes for queueing to resolve starting from 0:00. - Correct totalEpisodes logic on Series items using recursiveItemCount instead of childCount to fix "Resume from S1E1" display on brand new series. - Pass correct resume parameters in _maybeTriggerAutoPlay to auto-resume partially played items. - Conditional play button labels on compact (mobile) layouts: display "Play" for unwatched S1E1, and "S$sE$e" code for episodes to avoid overflows.
…t Up, and Library Pages - Updated `getItem` to load user-specific metadata from `/Users/$userId/Items/$itemId` - Request `RecursiveItemCount`, `ChildCount`, and `SpecialFeatureCount` in default query fields to correctly identify fresh vs partially played series - Add fallback base URL client lookup in `MediaServerClientFactory.getClientIfExists` for server ID base URLs - Restore active stream resolver and playback control service bindings when switching between primary and secondary server play items - Fixes Moonfin-Client#388 (resuming from Continue Watching failing to queue next up episodes)
- media_server_client_factory: guard URL-fallback loop with serverId.contains('://') so it only runs for URL-shaped inputs
- playback_module: restore safe early return in _ensureResolverForItem (drop ?? fallback, safer for multi-server)
- playback_module: add resetActiveStreamResolver() to clear cached client on logout
- session_repository: call resetActiveStreamResolver() in destroyCurrentSession()
- item_detail_screen: move s==1 && e==1 'Play' label above _isCompact branch (fixes TV/desktop)
- item_detail_screen: extract _computeWatchState() helper, replacing three copy-paste blocks
- jellyfin_item_fields: remove unused SpecialFeatureCount field
a59e1a7 to
6227637
Compare
Contributor
Author
|
All comments addressed! |
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.
Resolving Media Detail Page Discrepancies
Summary
This PR resolves metadata loading and play/resume state displays on show details pages, specifically for items navigated from or played via "Recent TV Shows", "Recent Movies", and "Continue Watching" rows. It addresses issue #388 by ensuring the details page correctly displays "Play" vs "Resume from SX:EX" and has the user-specific state needed to build the Next Up/resume episode queues.
Related Issues
Link related issues or tickets separated by commas.
Type of Change
Changes Made
List the key changes included in this PR.
getItem(itemId)to use the user-specific/Users/$userId/Items/$itemIdendpoint instead of the public/Items/$itemIdto load correct user-specific play and resume data.RecursiveItemCount,ChildCount, andSpecialFeatureCounttokItemFieldsto determine the accurate played and episode counts for show/season context.getClientIfExiststhat normalizes base URLs to successfully look up client configurations by base URL when UUID lookups returnnull._currentActiveResolverClientand registered/restored active resolvers and player services during playback configuration in_ensureResolverForItem.Platform
Testing
Test Steps
Screenshots (if applicable)
N/A
Checklist