Commit Graph

90 Commits

Author SHA1 Message Date
Ashik K 09a3ce15a0 Rename project from jellypig to jellyflood
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>
2025-10-18 09:14:33 +02:00
Ashik K 65d5a4b176 Rename Swiftfin to jellypig - personal fork for custom use cases
- Renamed Swiftfin.xcodeproj → jellypig.xcodeproj
- Renamed directories: Swiftfin tvOS → jellypig tvOS, Swiftfin → jellypig iOS
- Renamed schemes: Swiftfin tvOS → jellypig tvOS, Swiftfin → jellypig iOS
- Updated all references in project.pbxproj and scheme files
- tvOS-focused personal fork for Jellyfin.Xtream plugin usage

License: MPL-2.0 (allows forking and modifications)
2025-10-17 08:50:39 +02:00
Joe Kribs 99011b5c92
Cinematic Episode Image (#1556) 2025-06-03 18:27:01 -06:00
Ethan Pippin 8be5df69b0
Cleanup `ItemView`s (#1543)
* wip

* wip

* Update ItemView.swift

* cleanup, fix images

* cleanup

* Update Package.resolved

* Update Localizable.strings
2025-05-20 22:15:34 -06:00
Joe Kribs 43eaeee011
Bump LePip's Collection Packages to Latest Commits (#1542)
* Bump `CollectionVGrid` to `70db2318ce64d49aa8b536e0623b96cb323fbdf1`

* Bump CollectionHStack as well.
2025-05-20 00:08:39 -04:00
Joe Kribs 6700ce969c
Complete Collections' `ItemView` (#1500)
* 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>
2025-05-17 11:34:04 -04:00
Joe Kribs a3dab2e165
[iOS & tvOS] Cleanup Permission Validation (#1499)
* 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>
2025-04-24 12:06:18 -04:00
Joe Kribs 0025422634
[iOS & tvOS] Upgrade SDK to 10.10 (#1463)
* 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>
2025-04-06 23:42:47 -04:00
Joe Kribs 216375905c
[iOS & tvOS] Trailers (#1456)
* 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>
2025-04-05 01:13:20 -04:00
Joe Kribs 890bf1fa31
[iOS & tvOS] Video Range Types (#1449)
* `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>
2025-03-14 13:01:23 -04:00
Joe Kribs 8f21860e5e
[tvOS] Season Selector Scrolling Bug (#1446)
* 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
2025-03-12 09:37:18 -04:00
Joe Kribs 35b72b3a5a
[iOS & tvOS] Use `AboutView` for Series Poster Routing (#1438)
* 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>
2025-02-23 13:53:20 -05:00
Joe Kribs 137f0dbf13
[iOS & tvOS] Fix Version Selection (#1429)
* iOS + tvOS Versioning

* hasMultipleVersions

Co-authored-by: Ethan Pippin <ethanpippin2343@gmail.com>

* v1

* Button Witdh to avoid overflow. Fix build issues.

* Let instead of Var.

* cleanup

---------

Co-authored-by: Ethan Pippin <ethanpippin2343@gmail.com>
2025-02-20 00:02:11 -05:00
Joe Kribs c113c341bf
[tvOS] Mirror iOS Ratings + Attribute Settings (#1422)
* Copy + Paste + Settings

* Much bigger changes to allow attribute customization.

* wip

---------

Co-authored-by: Ethan Pippin <ethanpippin2343@gmail.com>
2025-02-15 15:27:34 -07:00
Sam 6ee2b71cab
Make UnmaskSecureField respond to dynamic type (#1424)
* Make UnmaskSecureField respond to dynamic type

* use environment font

---------

Co-authored-by: Ethan Pippin <ethanpippin2343@gmail.com>
2025-02-15 15:05:51 -07:00
samglt c388ca2dec
[iOS] Show critic & community ratings alongside attributes (#1420) 2025-02-06 20:59:05 -07:00
Joe Kribs 1530668042
[iOS & tvOS] Series Extras (#1398) 2025-01-16 19:52:12 -05:00
Joe Kribs adec8de122
[Meta] 2025 Disclaimer (#1381) 2025-01-02 16:05:15 -07:00
Joe Kribs 486995b0cf
[iOS] Media Item Menu - Identify Media Item (#1369)
* WIP

* All item types.

* V2: Functionally better. UI still weird

* Rework!

* Organization, new LoadingIcon, remove unnecessary components, and standardize: CancellableLoadingButton

* Organization & Static Method Re-Use.

* wip

* fix tvOS

* wip

* localize

* Update RemoteSearchResultRow.swift

* Update Localizable.strings

* Update RemoteSearchResultRow.swift

---------

Co-authored-by: Ethan Pippin <ethanpippin2343@gmail.com>
2024-12-31 14:16:34 -07:00
Joe Kribs 23beb088da
[iOS] Admin Dashboard - User Profiles (#1328)
* Make user profile more generic. Still need to make it work for the reset image / other stuff like delete & username.

* Username Changing and PFP deletion.

* Functional, refreshing, and good to go!

* Clean up localizations

* Migrate [UserDto] -> IdentifiedArrayOf<UserDto>

* Solve "Username should probably be at the top of this section."

* allow notification filter

* WIP:

Created `UserProfileHeroImage` but I haven't used it anywhere.

* Centralize UserProfileHeroImages

* Rename UserProfileImages

* Fix Merge Issue?

* Move to UserProfileImage

* Merge with Main

* Fix Merge?

* Clear the cache on update.

* Delete duplicate `UserProfileImage`

* wip

* wip

* Update ImagePipeline.swift

* fix tvOS build issue and update comment to be more accurate

* clean up

* fix string

---------

Co-authored-by: Ethan Pippin <ethanpippin2343@gmail.com>
2024-12-28 22:35:10 -07:00
Ethan Pippin c8acd780be
Static Notification Payloads, Move more to `IdentifiedArray` (#1349)
* wip

* wip

* wip

* wip

* clean up

* clean up

* Update VideoPlayerManager.swift

* clean up
2024-12-08 23:57:16 -07:00
Ethan Pippin e856303181
Move to `IdentifiedArray` in `PagingLibraryViewModel` (#1346)
* init

* update packages, cleanup
2024-12-08 10:44:52 -07:00
Joe Kribs a3d84a958f
[iOS] Media Item Menu - Edit Arrays (People, Genres, Studios, & Tags) (#1336)
* Cleanup / Genre & Tag Management

* Move searching to a backgroundState. Fix the font Color when bulk editing tags / genres should be secondary when editing & not selected

* Cleanup

* Now that cancelling is handled better this should prevent the issue where the suggestions fails to update on a letter entry

* Change from using an event for searchResults to using a published searchResults var

* Moved all logic to a local list where all genres/tags are populated on refresh then filterd locally instead of calling the server for changes.

* Inheritance

* Split metadata from components then alphabetize. Also, fix but where you can't add a people

* People & Permissions

* Functional but dirty. TODO: Cleanup + Trie? Trei?

* nil coalescing operator is only evaluated if the lhs is nil, coalescing operator with nil as rhs is redundant

* TODO: Search improvements & Delay search on name change

* Cleanup & reordering

* Debouncing

* Trie implementation

* Permissions Cleanup Squeezing in: https://github.com/jellyfin/jellyfin-web/issues/6361

* enhance Trie

* cleanup

* cleanup

---------

Co-authored-by: Ethan Pippin <ethanpippin2343@gmail.com>
2024-12-06 15:22:11 -07:00
Joe Kribs da40f6a3b5
[iOS] Media Item Menu | Edit Metadata (#1323)
* Playback Quality - Learn More

* TODO: Fix leading not working on second line.

* Remove layoutDirection.

* Implement for tvOS. Slightly different spacing.

* VStack

* WIP - tvOS Implementaiton. SUBJECT TO CHANGE / ELIMINATION.

* Background Icon & formatting

* wip

* Review Changes. Remove unused Strings, clean up comments.

* Remove duplicate items used for testing

* Remove tvOS scrollIfLargerThanContainer for now.

* Edit Text-based Metadata

* ViewModel Cleanup

* use binding extensions

* Huge overhaul:

- Fix the notification when metadata was updated to work with 100% consistency
- Flip the locking to be true -> lock like server
- Redo the whole itemEditorViewModel to be more in-line with other viewModels | also fixes iPad weirdness
- Use itemViewModel for the edit view so I can just reuse those existing notifications instead of recreating the wheel
- More human dates for people - Date of death instead of "End date" (yikes)

* String fixes & overview size

* Fix build issues & String cleanup

* fix overview sizing, cleanup

* itemMetadataWasEdited -> temMetadataDidChange

* Creation of the NavigationBarMenuButtonModifier for an "ellipsis.circle" menu object in the toolbar. Makes it easier to ensure that this format looks the same throughout.

* Custom vs Official Rating + Menu Button Label change

* Menu button spacing and groundwork for other menu items (canDownload) since we already have the bool available. Currently disabled.

* Linting

---------

Co-authored-by: Ethan Pippin <ethanpippin2343@gmail.com>
2024-11-30 23:56:49 -07:00
Joe Kribs 687cfa6b5f
[iOS] Media Item Menu | Refresh Metadata & Delete Item (#1310)
* [iOS] Creation of the enableItemEditor & enableItemDeletion settings. Creation of the ItemEditorView. Creation of Refresh/Deletion Logic and Buttons. Wrap buttons in permissions.

* You can make delete permissions without edit (admin) permissions. So, flip this so you can get to the edit page but editing is disabled if you're not an admin. The Delete option requires that the delete toggle is enabled and the user has permissions.

* Move deletion from the editView to the ItemView

* Delete from PagingLibraryView on Deletion

* Only enable delete if the user can delete something. Check deletion permission on Item level. Only allow editing for admins.

* Review Changes: ec33a6b63c

* wip

* Update RefreshMetadataButton.swift

* Update Shared/ViewModels/ItemEditorViewModel/RefreshMetadataViewModel.swift

Co-authored-by: Ethan Pippin <ethanpippin2343@gmail.com>

* Update Shared/Coordinators/ItemEditorCoordinator.swift

Co-authored-by: Ethan Pippin <ethanpippin2343@gmail.com>

* Reviews minus a learn more button

* LearnMoreAttempt v1

* Learn more v2 - Much better

* Learn More v3

* Learn More comments cleanup

* Learn More: https://github.com/jellyfin/Swiftfin/pull/1310#discussion_r1843149572

* clean up

* Remove Replace since it's already covered. Localize.

* clean up

---------

Co-authored-by: Ethan Pippin <ethanpippin2343@gmail.com>
2024-11-16 23:59:41 -07:00
Joe bc9eacab57
[iOS] Admin Dashboard (#1230) 2024-10-04 21:15:12 -06:00
Ethan Pippin d85ffb4156
Fix iOS 15 Poster Buttons (#1172) 2024-08-08 10:01:23 -06:00
Daniel Chick c0f8897a5f
Media Item HD Attribute Source (#1165)
* Clear todo by using the stream to indicate having HD

* Use only media stream
2024-08-06 11:49:22 -06:00
Daniel Chick 29b917ead0
Migrate to the latest version of Factory (#1097) 2024-07-01 19:58:59 -06:00
Isaiah Hamilton 515218ec52
Update watched indicator color (#1107)
Co-authored-by: Isaiah Hamilton <isaiah@isaiahs-mbp.lan>
2024-06-28 15:21:22 -06:00
Ethan Pippin 257091ba9a
Cleanup (#1077) 2024-05-28 16:23:58 +09:00
Ethan Pippin 66c26553ad
Some Polish (#1058) 2024-05-16 07:34:08 -06:00
Ethan Pippin 74b8b286c7
User/Server Sign In Redesign (#1045) 2024-05-14 23:42:41 -06:00
Ethan Pippin 329cf0d45f
Fix Episode Selector Images (#1047) 2024-04-28 21:02:01 +09:00
Ethan Pippin 2a9d7c7d17
Fix Collection/Episode Item Empty Image and Cleanup (#1046) 2024-04-24 21:54:48 -06:00
ryanh2o3 817f6decd6
remove transition from image view (#1044) 2024-04-23 13:09:30 -06:00
Ethan Pippin 384e80805e
Poster Display and Button Refactor (#1038) 2024-04-23 11:22:07 -06:00
Ethan Pippin 2387197021
Clean Up Item Scroll Views (#1015) 2024-04-10 07:31:10 -06:00
Ethan Pippin fd1a87cb02
Item Views to `Stateful` (#997) 2024-04-01 00:48:41 -06:00
Ethan Pippin 1bd18ef8b0
Fix iOS Chapter Overlay (#992) 2024-03-13 23:08:43 -06:00
Daniel Chick 876ffba417
Enable Swift Symbol Generation for Assets Catalogs (#955) 2024-03-13 14:37:03 -06:00
Ethan Pippin a645444f25
Refactor `PosterButton` and libraries, good `UICollectionView`s, proper orientation handling, and more (#905) 2024-03-11 08:09:30 -06:00
Ethan Pippin b038f05848
Update 2024 headers (#951)
* update header

* the rest after upgrading
2024-01-13 15:13:44 -07:00
Ethan Pippin 9266d53ae0
Remove iOS `PosterButtonType` + cleanup (#883) 2023-10-31 23:52:06 -06:00
Ethan Pippin ddbe77e348
Cleanup and `ItemView.AboutView` Cards (#788) 2023-06-12 22:24:58 -06:00
Ethan Pippin a08a92e98a
New Year, New Video Player + Other Goodies (#593) 2023-04-20 09:33:51 -06:00
Ethan Pippin 3ffb67a400
Implement Factory (#587) 2022-09-15 11:32:47 -06:00
Ethan Pippin 20e0789ce2
Generic Libraries (#583) 2022-09-14 06:41:06 -06:00
Ethan Pippin 83f9c1c81c
fix (#579) 2022-09-12 16:20:59 -06:00
Ethan Pippin 859a47803f
tvOS - Revamp Connect Flow (#563) 2022-09-07 23:52:19 -06:00