* 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>
* 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>
* 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>
* 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>
* 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.
* 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>
* 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>
* 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>
* `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>
* 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
* 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>
* 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>
* 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>
* 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>
* 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
* 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>
* 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>
* 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>
* 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>
* 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>
* 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.
* Partially resolve color todo
* Update localizations for quick connect steps. use bulleted list
* Same change for tvos
* Remove padding2 modifier
* Localisation
* 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>
* 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>
* 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.