feat: Add Collections (BoxSets) favoriting support#491
Merged
RadicalMuffinMan merged 1 commit intoJun 11, 2026
Merged
Conversation
- Enable long-press context actions on Home/Library pages for Collections. - Add details page heart icon button (Favorite toggle) next to Studio info. - Add dedicated 'Collections' row on the Favorites screen (Home view) and support Collections in grid Library view.
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.
Pull Request
Summary
Implements comprehensive Collections (BoxSets) favoriting, playback controls, and download support. This feature adds a full Series-style Action Buttons row to the Collections detail page (Play/Resume, Shuffle, Restart, Cast, Mark Watched, Favorite, Playlist, Download All, Delete, and Edit Metadata), implements collection-wide Play/Resume logic (starting at the first item, resuming partially watched items, or starting the next unwatched item), and supports offline collection downloading.
Related Issues
Link related issues or tickets separated by commas.
Discord request.
Type of Change
Changes Made
lib/preference/preference_constants.dart):collectioncase toFavoriteTypeFilterenum.'favorites_collections'.lib/data/viewmodels/favorites_view_model.dart):FavoriteTypeFilter.collectiontorowTypesstatic list to retrieve and populate Collections rows on the Favorites screen.lib/ui/widgets/focus/context_action.dart):'BoxSet'toisMediaTypecheck so context menu actions ("Add to Favorites", "Mark as Watched", etc.) are loaded for Collections.lib/data/services/download_service.dart):downloadBoxSetand_getAllPlayableItemsForBoxSetto recursively query and download playable items within a Collection.lib/ui/screens/detail/item_detail_screen.dart):_isDownloadableto supportBoxSet.'BoxSet'case in_startDownloadto invokeservice.downloadBoxSetand set up_DownloadButton/ quality picker estimation models._ActionButtonswidget row to_buildBoxSetContent()centered above the metadata section._ActionButtonsState.build(): labels "Play" if all items are watched or none are watched, and "Resume" if there is partial progress._playInternal()case'BoxSet': plays all recursive items starting from the partially played element (at its saved position) or the first unwatched element.Platform
Testing
Describe how this change was tested.
Test Steps
Moonfin_Windows_v2.1.1.exe.Screenshots (if applicable)
Checklist