* 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>
* 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>
* 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>
* 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>
* [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>
* 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 function to update basic server info
* Add server info update in server check view model
* Update ServerCheckViewModel.swift
---------
Co-authored-by: chickdan <=>
Co-authored-by: Ethan Pippin <ethanpippin2343@gmail.com>
* Good start but some missing items:
- Upload image isn't working
- Only a single image is shown per section. Need to make this the HCollection of all images for the group
* Upload still failing but now update and set are 2 different processes because I think that's better. Spacing on the add screen is still all wrong but we're getting closer
* ~70% Complete
TODO:
- Spacing for remote portrait images is wrong & cramped
- Upload image from file browser never works & produces 400 error
- Show all images for an item.imageType opposed to just the first
- Setting image works but produces a 400 error
- Error alert looks bad
* Merge with Main
* URL Changes
* Updating logic and confirmation screen
* Lots of changes:
Selecting a Remote image is now working without error and works consistently!
Upload a local file is still broken
Item types with multiple images is working as intended now!
Overriding an image on index doesn't seem to work but it doesn't work for Web either so........
UI is way more jank but the hard parts are getting solved!
* Breaking this even more with the hopes of a better tomorrow.
* Getting better?
* Refreshing is working but I might need to make this work mroe effiently...
* 90% There!
* Ability to cancel the update
* Still no luck uploading images?
* Stop reordering on deletion/addition
* 2025 disclaimers
* Uploading finally works!
* Functional but messy.
TODO:
- Figure out better resizing if too big?
- Upload from Photos
- Move upload logic to imageViewModel and make RemtoeImageViewModel PagingLibraryViewModel conformant
- Create a ImageInfoView for Selection & Deletion.
* Now conforms to PagingLIbraryViewModel but everything else is a mess
* Close!
* First no all appears
* Fix double pop/routerdismiss
* Uploading from Photos is (Finally) Ready!
* wip
* Reuse PhotoPicker and Crop code.
* 4/6 of the codefactor changes
* Pass around the URL NOT the UIImage
* Clean up ItemImageDetails types.
* Make sure the ImageView mirrors the real shape of the image. Posters should be uniform but this is the selection for the image so the dimensions are important to demonstrate.
* Rating Type label.
* Delete confirmation dialog.
* Remove double sizing. Remove Unused ViewModel. Change PhotoPicker to a checkmark instead a 1. Since there is only ever one picture selected, no need to count the images.
* Get the image URL as needed. No more Truples. Localize ImageTypes.
* Remove attempt at ImageInfo Poster Comformance.
* Even more cleanup
* Delete vs Save flip
* Hide delete button
* Even more cleanup
* Fix tvOS build issues.
* Reduce delay & remove unused comment. Should finally be ready again.
* wip
* Update ItemImagesView.swift
* Event Only on upload failures.
* Remove unnecessary ViewModel's from tvOS.
* Add dismiss action to RemoteSearchResultView. While I am doing this here, fix it there.
* Move From Coordinator -> .Sheet. This fixes the popping issue / delay requirement!
* wip
* wip
* wip
* wip
---------
Co-authored-by: Ethan Pippin <ethanpippin2343@gmail.com>