Complete rebranding from jellypig to jellyflood including:
- Renamed all jellypig references to jellyflood
- Updated store implementations (jellypigstore -> jellyfloodstore)
- Moved jellypig tvOS to Swiftfin tvOS structure
- Updated service configurations and defaults
- Preserved all Xtream plugin support and EPG functionality
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
* WIP
* Remove Divider
* self deprecation message
* `OrderedDictionary<BaseItemKind, [BaseItemDto]>`
* Localization fun
* cleanup
* Remove play button items & order by BaseItemKind.
* Fix AttributesHStack on iPad and make sure they align to the correct side. Looks jarring on Collections since Collections are often more limited on AttributesHStack items.
* Localization fix
* cleanup
* cleanup
---------
Co-authored-by: Ethan Pippin <ethanpippin2343@gmail.com>
* Move permissions to centralized spot
* Move `identifiableTypes` to `BaseItemKind`. Use `showEditMenu`
* Cleanup showMenu options for iOS and tvOS. Metadata allows Subtitle, Lyrics, and Collection edits as well.
* Comment out Lyrics and Subtitles with a TODO for when they are available.
* Update BaseItemKind.swift
Co-authored-by: Ethan Pippin <ethanpippin2343@gmail.com>
* Review Revisions
---------
Co-authored-by: Ethan Pippin <ethanpippin2343@gmail.com>
* Buildable!
* Update file names.
* Default sort to sort name NOT name.
* SessionInfoDto vs SessionInfo
* Targetting
* Fix many invalid `ItemSortBy` existing. Will need to revisit later to see which can still be used!
* ExtraTypes Patch.
* Move from Binding to OnChange. Tested and Working.
* Update README.md
Update README to use 10.10.6. Bumped up from 10.8.13
* Update to Main on https://github.com/jellyfin/jellyfin-sdk-swift.git
* Now using https://github.com/jellyfin/jellyfin-sdk-swift.git again!
* Paths.getUserViews() userId moved to parameters
* Fix ViewModels where -Dto suffixes were removed by https://github.com/jellyfin/Swiftfin/pull/1465 auto-merge.
* SupportedCaseIterable
* tvOS supportedCases fixes for build issue.
* cleanup
* update API to 0.5.1 and correct VideoRangeTypes.
* Remove deviceProfile.responseProfiles = videoPlayer.responseProfiles
* Second to last adjustment:
Resolved: // TODO: 10.10 - Filter to only valid SortBy's for each BaseItemKind.
Last outstanding item: // TODO: 10.10 - What should authenticationProviderID & passwordResetProviderID be?
* Trailers itemID must precede userID
* Force User Policy to exist.
---------
Co-authored-by: Ethan Pippin <ethanpippin2343@gmail.com>
* ItemViewModel Trailers
* iOS done.
* Sections >>> Divider
* tvOS kind of.
* Button/Menu cleanup
* Huge ActionButton overhaul
* Error Handling, ActionButton/Menu standardization, and ActionButtonLayout cleanup part 1.
* cleanup
* cleanup
* Combine ActionButton logic. Complete ActionButton rework and animation/style rework. Should this be 3 files??
* Dumb sizing error. Get size from WIDTH not HEIGHT! Height is always 100 and Width is larger.
* Pressed buttons are but focused buttons but slight less. Pressed buttons are still bigger than default, unfocused buttons. TIL.
* Cleanup / Structure
* Remove Test.
* New Setting. Version on PlayButton Row. Complete TrailerMenu revamp. Make ActionButtonLayout a single row.
* Spacing & remove test logic
* VERY WIP
* Fix the compact-ness
* Linting.
* Remove Testing logic.
* Pre-Cleanup - WIP
* Finalized. Moved ScrollingText to tvOS Only.
* MediaURL? = nil but it's already nil by default.
* Error on the View not the button. This was NOT showing for the button since it lived on the Menu. This resolves this.
* wip
* Update VersionMenu.swift
* Remove scrollingText from this PR.
* Remove labels & iOS Action Button cleanup / no foregroundStyle on de-selected.
* ActionButtonScaling
* .card all buttons in ActionButton
* Slow and less bounce-i-fy the menu animations. Also, slight padding
* Wait, don't add this padding this isn't needed.
* localize
---------
Co-authored-by: Ethan Pippin <ethanpippin2343@gmail.com>
* `VideoRangeType` "Extension" for now it's an enum until 10.10. Otherwise, done.
* Limit lines to 1 and variable width as needed.
* CodeFactor issue resolution
* AttributeViewModifier -> AttributeBadge
* change API
* `WrappingHStack`
---------
Co-authored-by: Ethan Pippin <ethanpippin2343@gmail.com>
* Ensure selectionViewModel is a valid season.
* Scolling issue
* Fix Scrolling! But fails to set button color...
* Move HStacks into their own folder.
* CollectionHStack
* SeasonHStack FINALLY done!
* ScrollToIndex NOT Element
* Remove refocus work
* Undo extra changes not for this PR
* Fix Episode Scrolling on iOS as well.
* Add the `.mask` in... Whatever that actually does??? Just trying to mirror the older version
* Linting
* Use playButtonItem instead
* Season ScrollTo
* Cleanup.
* Even more cleanup.
* Even more cleanup and comments
* LInting
* Catch empty episodes
* Linting.
* Mirror iOS more. Remove unused imports. Turn non-used cards into buttons to allow focus.
* Allow focusing on Empty / Error cards.
* Make ErrorCard Selectable
* cleanup
* Focusable Loading Card.
* Fall back to empty season.
* Last of the MacOS Catalyst stuff
* Force Unwrap.
* Don't force unwrap.
* Remove unneeded `focusedSection` from `EpisodeSelector`.
---------
Co-authored-by: Ethan Pippin <ethanpippin2343@gmail.com>
* Move Series Button to the About Section IF the item is an episode. Otherwise, continue using that image as just an image. tvOS & iOS.
* use posterbutton
---------
Co-authored-by: Ethan Pippin <ethanpippin2343@gmail.com>
* Button cleanup & errorViews
* Change the Sign Out button to be `ListRowButton`. Sets a better height value using `maxHeight` to ensure that it doesn't exceed the `ListRow` sizing.
* deleteUsersButton needs to be manually set back to 75
* wip
---------
Co-authored-by: Ethan Pippin <ethanpippin2343@gmail.com>
* Add pin prompt to sign-in screen
* Bring over security views from iOS
* silence tvOS 17 warnings
* Add user profile and security views to routing
* Changes
* revert and remove commented code
* cleanup
* CodeFactor fixes
* Joe's Suggestions:
- Move UserProfileSettings to their own Coordinator
- Make Views Modal to better reflect existing items
- Fix CustomizeSettingsCoordinator (This is on me!)
- Change PINs to use SecureField
- Move all Settings View to use SplitFormWindowView to mirror existing Settings
- Use user profile image for SplitFormWindowView Icon
- Change Profile Security to use LearnMoreModal
- Use suggestion from https://forums.developer.apple.com/forums/thread/739545
- Tag Alert > TextFields with TODO so we can check this on tvOS 18
* Fix PIN for https://forums.developer.apple.com/forums/thread/739545 on SelectUserView
* Fix Build Issue.
* use user
---------
Co-authored-by: chickdan <=>
Co-authored-by: Joe <jpkribs@outlook.com>
Co-authored-by: Ethan Pippin <ethanpippin2343@gmail.com>
* Mirror tvOS to iOS
* Fix router dismiss. Remove redundent viewModel.refresh from itemView
* reset dev team info
* View Modifier and ViewModel cleanup
* Remove testing comments / events
* Cleanup `.errorMessage($error)`
* Cleanup all viewModel.states for item editing, add errorViews if the data fails to load, and add errorMessage on failed events.
MARK sections: Var/Func always unless only Body and Var/Lets only if there are several of varying types / functions.
* Partially resolve color todo
* Update localizations for quick connect steps. use bulleted list
* Same change for tvos
* Remove padding2 modifier
* Localisation
* Focus on the first element if the lastFocusedEpisodeId isn't in the viewModel.
* Performance Improvements:
- Optimized Lookup: Used a Set for efficient checking of whether lastFocusedEpisodeID exists in viewModel.elements.
- Single Pass: Reduced the number of passes needed to check for existence and set the focusedEpisodeID.
* https://github.com/jellyfin/Swiftfin/pull/1185#pullrequestreview-2241625398 Suggestions
---------
Co-authored-by: Joseph Kribs <joseph@kribs.net>