* 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>
* [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>
* 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>