Commit Graph

2032 Commits

Author SHA1 Message Date
Ethan Pippin a6c1908b87
update (#1356) 2024-12-10 19:15:43 -07:00
Ethan Pippin fac0c3ee82
Fix possible duplicate ids (#1354) 2024-12-10 14:27:24 -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 bbfa944b52
Fix optional ID case for libraries (#1352) 2024-12-09 17:18:13 -07:00
Joe Kribs 174487a220
[iOS] Admin Dashboard - User Device & TV Access (#1342) 2024-12-09 16:33: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 0797fb5fee
[iOS] Admin Dashboard - Hide Collections from Deletion Menu (#1340) 2024-12-07 14:32:51 -07:00
Ethan Pippin ff2796c745
Update FastlaneRunner (#1343)
* Update FastlaneRunner

* update 2
2024-12-06 23:11:32 -07:00
Ethan Pippin 7ccb91d838
Update Fastlane Runner (#1341) 2024-12-06 15:51:21 -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
Daniel Chick 95c4395c11
Resolve Prolonged Type Checking (#1338)
Co-authored-by: chickdan <=>
2024-12-05 12:39:03 -07:00
Joe Kribs 2ac9283dfa
[iOS] Admin Dashboard - Media Access / Deletion Settings (#1333)
* ServerUserAdminViewModel cleanup & testing. ServerUserAccessView.

* Change the enableAllLibraries to use the binding extensions

* Use coalesce for enableAllFolders & enableContentDeletion

* use contains binding

---------

Co-authored-by: Ethan Pippin <ethanpippin2343@gmail.com>
2024-12-02 22:54:33 -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 b9ac50c164
[iOS] Admin Dashboard - User Permissions (#1313)
* WIP

* WIP

* Localization and better planning. Remove the Username as this will end up in another section. Updated planning here: https://github.com/jellyfin/Swiftfin/discussions/1283 | 5 more views required!

* Initializing an optional variable with nil is redundant line

* Remove Live TV since that will go in another section

* Cleanup Coordinator / Merge with Main

* Remove all 'Allows' from strings

* Fix Merge Issues

* Use CaseIterablePicker, Binding.map

* BackgroundState == updating, change all of the buttons to visible when custom by process of elimination opposed to the default custom value. Make all of the input fields use temp values to make it less jarring.

* Update SessionsSection.swift

* Learn more!

* Validate > 0, don't allow inputs to be less than 1 and reset tempValues when the enum is updated.

* use new binding extensions

* String fixes

* Don't test against adminDefault for users or userDefault for admins.

* Linting indentation

* Default vs UserDefault + no more reason to have temporary variables.

* cleanup

* format

---------

Co-authored-by: Ethan Pippin <ethanpippin2343@gmail.com>
2024-11-27 11:22:37 -07:00
Joe Kribs 34d64bca5d
[iOS] LetterPicker - Dynamic Scaling (#1326)
* Get the Size from Parent

* Use the Font for Sizing

* Make Static for Padding

* Using new sizing instead of a static 35
2024-11-24 17:52:20 -05: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 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 128381a439
[iOS] Admin Dashboard - User Passwords (#1312)
* resetUserPassword Adjustments

* Nest the Password in Advanced because I dunno it looks nicer.

* Dismiss Coordinator instead of pop.

* Build issues

* Rename my local xcode to xcode_16???

* Build plz

* Comments

* clean up

---------

Co-authored-by: Ethan Pippin <ethanpippin2343@gmail.com>
2024-11-15 15:14:59 -07:00
Ethan Pippin 4dc8a31d6d
Update and Clean Up CI (#1314) 2024-11-14 15:56:58 -07:00
Joe d276bd7449
[tvOS] ItemView Button Cleanup (#1296) 2024-11-11 20:24:32 -07:00
Joe 83843e2173
[Meta] Player Comparison Page (#1302)
* Create Players.md

* Update Players.md

* Rename Players.md to PLAYERS.md

* Update PLAYERS.md

* Rename PLAYERS.md to Players.md

* Update and rename Players.md to players.md

* Update players.md

* Update players.md

final version

* Update players.md

Actual last one

* Update README.md

Add player section

* Update players.md

Make note that transcoding exists.

* Home Theater Audio Delays + Subtitle Support Quirks

* Update players.md

Update to include codecs that are not supported by either video player.

* Update players.md

HDR Section & Notes

* HDR 2x Section -> 1 Section

* Disclaimer update

* Update players.md

HDR disclaimers

* Update players.md

Requires AV1 for Dolby Vision 10

* Update players.md

* Update players.md

AV1 disclaimer

* HLG notes

Finally done!

* Update players.md

* create Documentation folder

---------

Co-authored-by: Ethan Pippin <ethanpippin2343@gmail.com>
2024-11-04 16:21:18 -07:00
Joe bcc1b6e733
[iOS] Admin Dashboard - Migrate to Own Coordinator/Folder (#1300)
* Migrate all files from UserDashboard to AdminDashboard. Rename accordingly since this is an admin only function. Move all AdminDashboard items from SettingsCoordinator to their own AdminDashboardCoordinator. Move all ViewModels to ONLY live inside of the iOS build since tvOS is

* cleanup

* fix for sub navigation

---------

Co-authored-by: Ethan Pippin <ethanpippin2343@gmail.com>
2024-11-04 14:14:22 -07:00
Joe e0990e321a
[iOS] Admin Dashboard - Users (#1287) 2024-10-31 15:56:00 -06:00
Daniel Chick 9e119017db
Project Settings Changes (#1297)
* Add compiler flag for long type checking warning

* duplicate file references.

* Reduce expression complexity

* Replace deprecated SwiftLint rule

* Bump SwiftFormat version

* Bump Swift version of SwiftLint
2024-10-31 13:18:19 -06: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 56fa03257e
[iOS] Admin Dashboard - API Keys (#1284)
* API Keys

* Switch Deletion Alert for a Confirmation Dialog

* Migrate from a list to a Collection VGrid.

* Convert back to List. Also, now using my events! So, there is a confirmation and a failure message for both delete & create API.

* want vs wish

* Merge Issue Fixes

* Review Changes

* Reset newAPIName after creating a new API

* cleanup

---------

Co-authored-by: Ethan Pippin <ethanpippin2343@gmail.com>
2024-10-24 20:07:49 -06:00
Joe c46ee13dbc
[iOS] Admin Dashboard - Add/Delete Task Triggers (#1276)
* All Working. TODO: Figure out why TimeInterval crashes Swiftfin if I select 'Cancel'

* Cleanup. Kind of a typeAlias but not really? Fixed the minute crash, I was make a recursive calc. All good now. Make sure temp values default to existing value at startup

* Manual Run action from Edit View

* Issues resolved.

* Labels / soft merge with Main

* Utilize events to print a success/failure message for when there is an attempted change with a TaskTrigger.

* Fix label wrong value & remove TODO for completed item.

* Fix all the merge issues.

* wip

* wip

* localize

---------

Co-authored-by: Ethan Pippin <ethanpippin2343@gmail.com>
2024-10-23 16:30:12 -06:00
Joe a04f97e1ba
[iOS] Admin Dashboard - Device Management (#1277)
* Split out Devices Logic - Ready to go!

* Review Items + Reworking the deleteDevices logic to all use the same deleteDevice core + deleteDevices. Delete All Devices now just uses the more generic deleteDevices

* Allow Filtering on UserID for later usage on UserDetailView.

* Fully remove DeleteAll action in favor of Delete Devices. Change view to pass in the viewModel.devices as a 'Delete All' function

* DeviceDetailsView

* Section Split out, Localization, and cleanup.

* I guess I missed there on first upload.

* Initial Select All / Delete Devices logic. Checkbox options on the list. Hopefully this is good.

* Initial Review Item!

* Custom Device Name is now a field. Change DevicesViewModel to Eventful to capture updates

* Revised Device Interaction Buttons

* Remove unused Label.

* Make DeviceRow mirror UserRow. UpdateDevicesView to have DeleteButton when in EditMode. Also, it's EDITMODE not SELECTMODE... Finally, make sure the SelectedDevice and SelectedDevices are both empty if the user tries to delete themselves and fails. Change how the single device delete works to confirm deleting from an array still works as needed.

* wip

* Review Changes: 61b3716239

* Merge issues + testing again to make sure. Checks out.

* wip

---------

Co-authored-by: Ethan Pippin <ethanpippin2343@gmail.com>
2024-10-21 15:10:25 -06:00
Daniel Chick 11d6907735
Fix: Missing Chapters (#1281) 2024-10-19 15:07:31 -06:00
Joe edf56e7fee
[Fix] NextUp Updates Require Restart (#1280)
* Refreshable

* https://github.com/jellyfin/Swiftfin/pull/1280#pullrequestreview-2375921432

* Local: let maxNextUp = Defaults[.Customization.Home.maxNextUp]
2024-10-17 14:56:14 -06:00
Joe 50e0cfef73
[iOS] Admin Dashboard - Active Devices Icons (#1275)
* Add Device images & Reference using the Enum as a filler if the NowPlayingItem is Nil

* Localize DeviceTypes.DisplayTitles

* Review changes. Last potential TODO: Image: ImageResource might not be the correct format

* DeviceType is needed to build tvOS

* Mirror Jellyfin-Blue-Blob for SVG configuration. Use ImageResource for the Device/Client Images

* Merge missing }

* Don't recreate the ImageResource since it's already generated.

* New webOS logo! Fix tvOS not having the new logos

* use if let, implicit self

* use secondary system fill for other

---------

Co-authored-by: Ethan Pippin <ethanpippin2343@gmail.com>
2024-10-15 21:34:38 -06:00
Kityn 0148e46afb Translated using Weblate (Polish)
Currently translated at 100.0% (424 of 424 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/pl/
2024-10-15 18:41:37 -04:00
Mattias Carlsson d8a70f1ea2 Translated using Weblate (Swedish)
Currently translated at 80.8% (343 of 424 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/sv/
2024-10-15 18:41:37 -04:00
Joe 8ae55dc57b
[iOS] Admin Dashboard - Active Sessions Play Method Fix (#1272)
* Fixes. But is this right?

* Ensure there IS an item playing.

* https://github.com/jellyfin/Swiftfin/pull/1272#discussion_r1801713951

* Fix the missing labels after merging with Main.
2024-10-15 16:04:32 -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
Andrea 43811aa50d Translated using Weblate (Italian)
Currently translated at 79.1% (335 of 423 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/it/
2024-10-14 10:41:37 -04:00
oreno_dinner 1c606d5afa
Expanded subtitle font size and change range (#1254) 2024-10-13 12:40:17 -06:00
Joe 486398d4ce
Update SwiftfinDefaults.swift (#1270) 2024-10-13 12:04:20 -06:00
Joe 498842bb84
[tvOS] ListView + Grid Landscape Poster Padding (#1213) 2024-10-12 14:42:51 -06:00
BromTeque 46f90bcb33 Translated using Weblate (Norwegian Bokmål)
Currently translated at 100.0% (423 of 423 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/nb_NO/
2024-10-10 21:56:36 -04:00
Ethan Pippin 7a0223aa15
Server Selection Menu Indicator (#1267) 2024-10-10 09:50:16 +09:00
Ziyang Huang 071a1f98e1
Make `GestureView` respond to double touch gesture (#1260) 2024-10-08 17:09:44 -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
Kityn b44ad7994f Translated using Weblate (Polish)
Currently translated at 100.0% (423 of 423 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/pl/
2024-10-08 08:11:18 -04:00
Anders d6a27110bf Translated using Weblate (Danish)
Currently translated at 81.7% (346 of 423 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/da/
2024-10-08 08:11:18 -04:00
judokan9 801c653103 Translated using Weblate (German)
Currently translated at 100.0% (423 of 423 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/de/
2024-10-08 08:11:18 -04:00
Wiggo Bergman 6b8a019b8f Translated using Weblate (Swedish)
Currently translated at 81.3% (341 of 419 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/sv/
2024-10-08 03:01:14 -04:00
judokan9 b978c21754 Translated using Weblate (German)
Currently translated at 100.0% (419 of 419 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/de/
2024-10-08 03:01:14 -04:00
Philippe Arteau 3f7f9d4ad9 Translated using Weblate (French)
Currently translated at 92.6% (388 of 419 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/fr/
2024-10-08 03:01:14 -04:00