Commit Graph

2305 Commits

Author SHA1 Message Date
Lukasvdzwaluw f13c752787 Translated using Weblate (Dutch)
Currently translated at 36.1% (272 of 752 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/nl/
2025-04-14 12:32:59 +00:00
Gallyam Biktashev ad0ecd0abc Translated using Weblate (Russian)
Currently translated at 33.9% (255 of 752 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/ru/
2025-04-14 12:32:58 +00:00
Maticula 68407019b1 Translated using Weblate (Slovenian)
Currently translated at 36.0% (271 of 752 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/sl/
2025-04-14 12:32:58 +00:00
tobylibo 0fecb750ae Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 35.5% (267 of 752 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/zh_Hans/
2025-04-14 07:37:36 +00:00
Kityn 269276a9f6 Translated using Weblate (Polish)
Currently translated at 53.4% (402 of 752 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/pl/
2025-04-13 20:11:58 +00:00
Altiera Moreau 4262f806b4 Translated using Weblate (Slovak)
Currently translated at 33.6% (253 of 752 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/sk/
2025-04-13 20:11:58 +00:00
myrad2267 efc7b9f4b9 Translated using Weblate (French)
Currently translated at 62.3% (469 of 752 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/fr/
2025-04-13 20:11:58 +00:00
Crea 7978fc27bd Translated using Weblate (French)
Currently translated at 62.3% (469 of 752 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/fr/
2025-04-13 20:11:57 +00:00
format_ssd 4bca4d3ac5 Translated using Weblate (German)
Currently translated at 44.5% (333 of 748 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/de/
2025-04-13 04:42:51 +00:00
Joe Kribs d4330f130b
[iOS] Admin Dashboard - User Activity (#1485)
* Very Very WIP

* Details page.

TODOs:

- Duplicate ViewModels are initialized.
- Routing Cleanup
- Localizations for fields
- Get Played Item Details (See ActiveSessionDetails)
- Move all details to ActivityDetailsViewModel for Users & Items
- Localizations for enums
- Enum the types if possible

* Details View complete. TODO:

- Filters
- Default with No Filters

* Ready

* Fix localization

* cleanup

---------

Co-authored-by: Ethan Pippin <ethanpippin2343@gmail.com>
2025-04-13 00:42:48 -04:00
Adnan Sönmez 715ddca793 Translated using Weblate (Turkish)
Currently translated at 34.0% (255 of 748 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/tr/
2025-04-13 03:01:10 +00:00
Bill Thornton 78feccca14
Merge pull request #1491 from JPKribs/webplates
[Meta] Fix Webplates
2025-04-11 22:50:22 -04:00
Joe 07e23e6ab6 Use .utf16 instead of .utf8 / ascii 2025-04-11 19:40:37 -06:00
Ethan Pippin cfc0105dc7
cleanup (#1484) 2025-04-07 09:08:54 -04:00
Joe Kribs 84fd2e82a5
Remove the Z from X.Y.Z (#1483)
It's cramping on the SDK upgrade victory
2025-04-07 01:01:47 -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
Ethan Pippin 4a63b52b17
Stateful - Set cleanup and `final` classes (#1465)
* cleanup

* Update Stateful.swift
2025-03-29 23:05:14 -06:00
Joe Kribs 16efcbefdc
Update players.md (#1454)
https://github.com/jellyfin/Swiftfin/pull/1453
2025-03-17 15:35:47 -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
Quang 36be3cc43f
External display support (#1453) 2025-03-17 11:19:31 -04:00
Joe Kribs 0f1c8b42ec
[Meta] Library & Playback Documentation (#1450)
* Update players.md

Add a table for Track Selection as of 03/14/2025

* Create libraries.md

Library support
2025-03-16 20:07:52 -04:00
Joe Kribs e901317317
[iOS] Fix External Subtitle Selection (#1445)
* | Type          | Internal Subtitles | Internal Audio | External Subtitles | External Audio |
|---------------|-----------------|--------------------|----------------|----------------|
| Transcode     |               |                  |              |              |
| DirectPlay     |               |                  |              | *             |

* WIP - GetMasterHlsVideoPlaylistParameters

* WIP

* Cleanup unused code.

* Cleanup comments.

* Remove changes to GetMasterHlsVideoPlaylistParameters

* Change to use Max instead of a magic number.

* Update MediaStream.swift

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

* Update MediaStream.swift

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

* Update MediaStream.swift

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

* Update MediaStream.swift

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

* New and Improved.

* Ensure we are using the right audio track.

---------

Co-authored-by: Ethan Pippin <ethanpippin2343@gmail.com>
2025-03-14 13:40:18 -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
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
Joe Kribs 0235793bc6
[iOS & tvOS] FilterViewModel - Cleanup (#1412)
* Filter Changes

* Use `viewModel.modifiedFilters` for tracking if the filter has been modified. Update the init and update. Hold only the modified filters in `modifiedFilters` instead of `(modifiedFilters, bool)` since that's just clunky and unnecessary.

* Reset button should be disabled when only THAT filter is non-default.

* ...

* PagingLIbraryViewModel.filterQueryTask is no longer in use since that should now be handled on the FilterViewModel

* fix merge

* cleanup

---------

Co-authored-by: Ethan Pippin <ethanpippin2343@gmail.com>
2025-02-15 15:05:34 -07:00
Joe Kribs c934ac4219
[tvOS] Fix ItemType Libraries (#1423)
* Recursive on ItemType

This only really applies to tvOS.

* Cleanup

* setParentParameters DON'T set isRecursive unless .folder
2025-02-13 16:48:30 -07:00
samglt e21ca65109
Add existing localizations to Xcode project (#1417) 2025-02-07 14:35:22 -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 c388ca2dec
[iOS] Show critic & community ratings alongside attributes (#1420) 2025-02-06 20:59:05 -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 21cf7865c3
[Meta] Video Player Documentation - Move AV1 from Video to Container Section (#1416)
* [Meta] Video Player Documentation - Move AV1 from Video to Container Section

This should be under containers not video. Confusing since AV**i** vs AV**1**. Added a note for the Apple SOC that first added HWA AV1 decoding as this should correspond with AVKit's ability to use it.

Pre-AV1 Decoders, I tested, and AV1 works but is VERY choppy so defaulting this to disabled is still the right move!

* revisions

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

---------

Co-authored-by: Ethan Pippin <ethanpippin2343@gmail.com>
2025-01-30 13:32:30 -05:00
Joe Kribs 35c39a8d0a
[tvOS] ItemTypeLibraryViewModel - Implement FilterViewModel (#1409)
* FilterViewModel only

* comments

---------

Co-authored-by: Ethan Pippin <ethanpippin2343@gmail.com>
2025-01-26 14:24:24 -05:00
Joe Kribs c9ae01e792
[Bug] [iOS] Item Editor Photo Upload - Coordinator Doesn't Dismiss (#1410) 2025-01-25 19:17:03 -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