Commit Graph

208 Commits

Author SHA1 Message Date
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
Peter Hamilton c5d6539018
Update PosterButton.swift | Adding accessibility support to media posters in media section of TVOS app (#1153)
* Update PosterButton.swift

Added accessibility labels to enable voice over on TVOS to read film titles on posters in media.

* lint

---------

Co-authored-by: Ethan Pippin <ethanpippin2343@gmail.com>
2024-10-08 17:07:59 -06:00
Joe 1405d2695c
Add 'Enable Rewatching' and ' Max days' to Next Up (#1258)
* Rebasing https://github.com/jellyfin/Swiftfin/pull/1212 on Main. Also, less baggage and random crap.

* Change 0 to Disabled. Better mirror iOS and tvOS Alerts for MaxNextUpDays.

* Review Changes:

Don't use the property wrappers in non-view contexts. While they technically can still work, use the subscript instead at the usage sites.
Use the dayInterval(0 ... 1000) format instead, then we don't need maxNextUpDays.

* Remove unused strings, and unused variables

* Add a tvOS TODO to double check the Done/Number button on the alert.
2024-10-07 15:02:18 -06:00
Peter McNeil 5d59d57871
[tvOS] Change password to be a SecureField and autosubmit on password comple… (#1090)
* Change password to be a SecureField and autosubmit on password completion

* Fix SelectUser Button

* Respond to comments and remove unnecessary changes

* Make FocusField a private enum
2024-10-06 02:24:28 -06:00
Joe bc9eacab57
[iOS] Admin Dashboard (#1230) 2024-10-04 21:15:12 -06:00
Mats Eikeland Mollestad 081a316843
tvOS - Show and interact with the video menu (#1066)
* Made the menu accessable and fixed visual padding bug

* Moved away from .onExitCommand etc

* Minor refactoring

* wip

* Update Overlay.swift

---------

Co-authored-by: Ethan Pippin <ethanpippin2343@gmail.com>
2024-09-05 13:44:00 -06:00
Joe f5bd1b8fcd
Customizable Device Profiles (#1169)
* Rename ExperimentalSettingsView.swift to PlaybackQualitySettingsView.swift

Fix Merge

* Rename MaximumBitrateSettingsView.swift to PlaybackQualitySettingsView.swift

fix merge

* Re-implement on Main. Should now have all the Main changed. Added a new change to use the Device Profile as a Transcoding Profile.

* Part 1 -> Making VideoPlayerType into a struct (I Hope) correctly

* Part 1.1 -> Making VideoPlayerType into a struct (I Hope) correctly

* Remove unneeded Files

* Missing file + CustomDeviceProfileSelection -> CustomDeviceProfileAction Rename

* Change + to Appending

* Attempt to add StorageValues+User. Not sure if this is correct?

* Move the Array unwrapping to funcitons. Not required but this should help prevent accidently doing this wrong. Add subtitles back into the custom profiles since that somehow got dropped. Added a PlaybackCompatibility enum. This might need to work for more than just video

* Complete rewrite to allow multiple profiles, compatibility mode, and directplay.

* Hardward -> Hardware

* Update CustomDeviceProfileSettingsView.swift

Double Licensing

* It was actually really easy to implement iOS... Trash cans still look weird and small.

* Swipe to Delete instead of the edit button

* wip

* wip

* Linting

* tvOS Implementation

* wip

* wip

* cleanup

* Create Package.resolved

---------

Co-authored-by: Joseph Kribs <joseph@kribs.net>
Co-authored-by: Ethan Pippin <ethanpippin2343@gmail.com>
2024-09-02 15:33:02 -06:00
Steve Byatt 58dfddeeca
Update lastSignedInUserID defaults to use new UserSignInState enum (#1209)
* init

* projecgt file

* Update project.pbxproj

---------

Co-authored-by: Ethan Pippin <ethanpippin2343@gmail.com>
2024-09-02 01:00:25 -06:00
Joe 11c25648bf
[tvOS] Episode/Season Focus gets Stuck (#1185)
* 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>
2024-08-16 12:30:15 -06:00
Joe 9bc8d9613e
[tvOS] Fix Episode Description Size & Provide Episode Thumbnail Clarity (#1184)
Co-authored-by: Joseph Kribs <joseph@kribs.net>
2024-08-15 19:25:34 -06:00