Commit Graph

206 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 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
Rasko 103982f6e7
Implement localization for hardcoded strings (#1510)
* first string

* add a bunch of localization

* more hardcode to localization

* small changes for two strings

* fix space formatting

* Update Localizable.strings

Put the localizations back in. Don't know why this changes anything but 🤷‍♂️

* Fix encoding

Why???

Also, missing ;

* implement requested changes

---------

Co-authored-by: Joe Kribs <jpkribs@outlook.com>
2025-05-02 13:04:34 -04:00
Daniel Chick 5bff24d908
Add safe area padding to the next up view (#1518) 2025-04-29 16:13:05 -04:00
Daniel Chick ded2314878
Follow the user's preference for poster type in the Latest section (#1519) 2025-04-29 15:53:17 -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 8c4fde87f1
[iOS] Admin Dashboard - QuickConnect Other User (#1488)
* Allow other user authorization.

* Show user being logged in.

* Fix localizations & update screenshot

* Cleanup Locales

* mirror lable changes on tvOS

* cleanup

* fix strings

* adjust sizes

---------

Co-authored-by: Ethan Pippin <ethanpippin2343@gmail.com>
2025-04-14 17:19:32 -04:00
Ethan Pippin cfc0105dc7
cleanup (#1484) 2025-04-07 09:08:54 -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
Ethan Pippin 0845545417
Clean Up `SelectUserView` (#1482)
* cleanup

* fix adaptive layout
2025-04-06 21:58:47 -04:00
Joe Kribs c0b875ed2a
[tvOS] Various Setting Cleanup (#1473)
* Various setting cleanup

* Remove Double headers

* My gradient did nothing... So resetting back to less.

* Reduce unnecessary formatting changes.

* Revisions https://github.com/jellyfin/Swiftfin/pull/1473#pullrequestreview-2745279339

* Subtitles was missing brightness. Subtitle shouldn't mirror title but image.

* Remove TODO.
2025-04-06 18:05:33 -04:00
Joe Kribs df89832647
[tvOS] Fix First Login Crash (#1481)
* Update UserSignInView.swift

Fix Crash

* Update UserSignInView.swift

Restore unnecessarily removed items

* Update UserSignInView.swift

Remove unnecessary formatting changes.

* Use `MainActor` instead

---------

Co-authored-by: Ethan Pippin <ethanpippin2343@gmail.com>
2025-04-06 17:41:42 -04:00
Joe Kribs 26ec19982e
[iOS & tvOS] Fix Square Overlay Over Profiles (#1466)
* Fix Square over Circle

* cleanup

---------

Co-authored-by: Ethan Pippin <ethanpippin2343@gmail.com>
2025-04-06 17:21:21 -04:00
Joe Kribs 0de40a5788
Couldn't find any other places that needed this. (#1474) 2025-04-06 16:52:08 -04:00
Glenn Hevey e6cc848138
[tvOS] Move AddUserButton to the bottom bar of Select User View (#1468)
* Added add user button to select user bottom bar

* Replaced AddUserButton with NoUserView

This commit removes the AddUserButton as it is no longer required.
Also when no user is logged in the GridView shows a new NoUserView

* Added multi server support

- When no user is logged in. Grid view shows the original AddUserButton.
- When there is a logged in user AddUserButton is replaced with AddUserBottomButton
- AddUserBottomButton will show a menu when in all server mode (just like AddUserbutton)
- Removed NoUserView as it isn't required anymore
- changed bottom bar layout to  allow for a larger service selection button

* cleaned up AddUserBottomButton

* cleaned up AddUserBottomButton

fixed formatting

* cleanup

* fix conflict

* cleaned up unused localisation

* cleanup

* removed debug background

---------

Co-authored-by: Ethan Pippin <ethanpippin2343@gmail.com>
2025-04-06 16:51:44 -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 a0a20caf1b
[tvOS] "Native" Styled Menu Button (#1451)
* WIP

* Other Menu inits and AppSettingsView

* Linting & a touch of spacing.

* cleanup

* Init from CaseIterable

* User a Picker instead of just a ForEach

* Remove InlineEnumToggle.

* cleanup

---------

Co-authored-by: Ethan Pippin <ethanpippin2343@gmail.com>
2025-03-17 12:22:35 -04:00
Daniel Chick 1eef7c9ff5
[tvOS] Sign-In Flow - User Auto Time-Out (#1447)
* Rename extension

* Initial picker implementation

* Uncomment section

* present picker

* Present picker fullscreen

* layout improvements + cleanup

* picker improvements

* math fix + set to previous values

* fix

* comments

* compiler directive

* missed l10n

* fix package.resolved

---------

Co-authored-by: chickdan <=>
Co-authored-by: Ethan Pippin <ethanpippin2343@gmail.com>
2025-03-14 13:23:44 -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 718ea0f187
[tvOS] Episode Selector - State & Focus Handling (#1435)
* 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>
2025-03-03 21:29:51 -07:00
Daniel Chick d2c5ac9985
[iOS] Fix Clipping Add User Button (#1441)
* Add what was removed

* tvos

---------

Co-authored-by: chickdan <=>
Co-authored-by: Ethan Pippin <ethanpippin2343@gmail.com>
2025-02-25 21:23:21 -07: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
Joe Kribs 846aabc868
[tvOS] ErrorViews - Creation (#1414)
* 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>
2025-02-15 15:22:30 -07:00
Daniel Chick 07c895ddba
[tvOS] App Settings & Splashscreen (#1419)
* Bring over iOS app settings

* Re-enable advanced settings menu option

* Conditionally show splash screen

* Disable app appearance setting

* cleanup

* File rename

* Change how version is displayed

* Disable app icon option due to not working

* comment

* Bring over signout interval section

* Enforce sign-out on close

* Revert change

* localizations

* wip

---------

Co-authored-by: chickdan <=>
Co-authored-by: Ethan Pippin <ethanpippin2343@gmail.com>
2025-02-06 20:59:18 -07:00
samglt 98e4ae9917
[tvOS] Fix fresh tomato being shown for all rating values (#1421) 2025-02-06 19:35:58 -07:00
Joe Kribs 3ee2abec5c
[iOS & tvOS] ItemLibraryViewModel - Cleanup (#1411)
* Move ItemType to Filter

* Init but normally...

* filter on people?

* Default to easiest / least change solution.

* Reset `.collectionFolder`, `.folder`, and `.BaseItemPerson` in `PagingLibraryView` to have the default filters. This was originally in place. This Commit just ensures that iOS and tvOS have the same implementation.

* wip

* Update ItemLibraryViewModel.swift

* Update ItemLibraryViewModel.swift

---------

Co-authored-by: Ethan Pippin <ethanpippin2343@gmail.com>
2025-02-02 12:17:46 -05:00
Joe Kribs 4ca788338d
[tvOS] PagingLibraryView - Mirror iOS "Hot Reload" Functionality (#1408)
* Update missing strings. Mirror iOS setting changes to make sure tvOS PagingLIbraryView updates with changes as well. Lay the groundwork for filtering.

* Revert back to rows over offset

* Reorder a bit.

* Move default layout to no values in closure. For whatever reason, I cannot do this to the non-defaults.

* 95% there

* Move `onChange`s to the `innerContent` to alleviate Type Checker issues

* All Value-less closures are moved with teh exception of viewModel.filterViewModel?.currentFilters

* Prepare for future letter picker location
2025-01-24 16:14:34 -05:00
Joe Kribs b0b604c4ad
[tvOS] Login Flow Cleanup - Second Pass (#1403)
* Background on Server User Signin. Button Sizing. More visible deletion notice. Menu ListView insets.

* wip

* Change Highlight. Move Add User Button. Remove Add User inline option.

* Take 2

* Undo user changes.

* Remove all changes.

* "selectServer" = "Select Server";

* Recommendations

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

* Update ServerDetailView.swift

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

* Update ServerDetailView.swift

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

* build strings

---------

Co-authored-by: Ethan Pippin <ethanpippin2343@gmail.com>
2025-01-23 22:25:08 -05:00
Joe Kribs 1530668042
[iOS & tvOS] Series Extras (#1398) 2025-01-16 19:52:12 -05:00
Daniel Chick f9ebebe6dd
[tvOS] Add pin prompt to sign-in screen (#1383)
* 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>
2025-01-09 15:48:58 -07:00
Joe Kribs adec8de122
[Meta] 2025 Disclaimer (#1381) 2025-01-02 16:05:15 -07:00
Daniel Chick cd94142a8a
[tvOS] Delete User from User Selection Screen (#1359)
* Extract handlers into function

* Color Improvements to move away from UIColor

* Bring over edit user feature from iOS

* Fix UserGridButton overlay when editing

* Move advanced menu to be near server select menu

* Re-enable context menu

* Add bottom button bar

* hook up user deletion

* improvements

* Refactor buttons for highlight hover effect

* Pass in user count

* Don't cancel editing if delete alert is cancelled

* cleanup

* Pad bottom of buttons

* Cancel editing after user deletion

* Revert ServerSelectionMenu back to button

* Remove padding that pushed the server selection menu up too far

* Make delete button red to match iOS

* Update SelectUserView.swift

* workaround Menu layout issues

* Bring select/deselect all users behavior from iOS

* Fixes after merge with main

* Fix vertical focus

---------

Co-authored-by: chickdan <=>
Co-authored-by: Ethan Pippin <ethanpippin2343@gmail.com>
2024-12-31 14:19:23 -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
Joe Kribs d580e8dcfd
[tvOS] SelectServerView Change to Menu (#1363)
* Selection & Fix ServerSelectionMenu padding

* ButtonStyle

* Move from `FullScreenMenu` to just use `Menu` Remove usages of `FullScreenMenu` since it's no longer used anywhere else.

* Remove unused `FullScreenMenu`

* Remove unused `SelectServerView` since it's now in the `ServerSelectionMenu`

* Selection menu fixes

* Focus issues

* clean up

---------

Co-authored-by: Ethan Pippin <ethanpippin2343@gmail.com>
2024-12-19 15:38:27 -07:00
Joe Kribs 97affd198e
[tvOS] Update ConnectToServerView & UserSignInView (#1365)
* UserSignInView and ConnectToServerView Cleanup

* Public User icon changes, move the Jellyfin 'NavigationBar' to a `View Modifier` for easier re-use.

* A better solution

* isLoading == isLoading NOT isLoading == true

* clean up

---------

Co-authored-by: Ethan Pippin <ethanpippin2343@gmail.com>
2024-12-19 14:30:01 -07:00
Joe Kribs b0583125f7
[iOS & tvOS] Localize Existing Strings (#1361) 2024-12-13 12:40:37 -07:00
Joe Kribs 8f05169097
[iOS & tvOS] Error Cleanup (#1357)
* Error Cleanup

* Localize everything!

* cleanup

---------

Co-authored-by: Ethan Pippin <ethanpippin2343@gmail.com>
2024-12-10 23:23:05 -07:00
Joe Kribs 548d35b19e
[tvOS] Media Item Menu - Refresh / Delete Items (#1348)
* 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.
2024-12-10 13:37:22 -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 994e99d141
[iOS] Playback Quality - Learn More (#1316)
* 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.

---------

Co-authored-by: Ethan Pippin <ethanpippin2343@gmail.com>
2024-11-21 13:47:11 -07:00
Joe d276bd7449
[tvOS] ItemView Button Cleanup (#1296) 2024-11-11 20:24:32 -07:00
Daniel Chick fed9c654ef
Resolve some todos (#1295)
* Partially resolve color todo

* Update localizations for quick connect steps. use bulleted list

* Same change for tvos

* Remove padding2 modifier

* Localisation
2024-10-29 11:17:56 -06:00
Joe 2bda693143
Generic Button to Input from an Alert (#1273)
* Creation of an Alert Input Button based on the Chevron Button.

* Only one button required for both iOS and tvOS

* wip

---------

Co-authored-by: Ethan Pippin <ethanpippin2343@gmail.com>
2024-10-15 00:42:42 -06:00
Joe 498842bb84
[tvOS] ListView + Grid Landscape Poster Padding (#1213) 2024-10-12 14:42:51 -06:00