Add support for running both Jellyfin and Xtream providers simultaneously:
- User can have 1 active JF account + 1 active XC account at same time
- Tabs dynamically show/hide based on active providers
- Account switcher allows switching between multiple saved accounts
New Components:
- XtreamSession: Session management for Xtream providers
- SessionManager: Tracks both JF and XC sessions
- XtreamView/ViewModel: New Xtream tab with Live TV categories
- TabCoordinator: Dynamic tab building based on active providers
Modified Components:
- MainTabView: Injects SessionManager, rebuilds tabs on provider changes
- TabItem: Added Xtream tab definition
- MediaViewModel: Excludes Xtream channels (now in Xtream tab only)
Scripts:
- Added .claude/scripts/create-issue.sh for Gitea issue creation
Closes: jellyflood-2 (partial)
Related: jellyflood-1, jellyflood-5
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Add .channel to BaseItemKind.supportedCases for proper filtering
- Implement channel API routing in ItemLibraryViewModel
- Add comprehensive debug logging to track API calls and filtering
- Support channels in MediaViewModel library views
- Fix channel items not appearing in media libraries
This enables Xtream plugin channels (VOD/Series) to display correctly
in jellypig tvOS. Channels now use proper /Channels API endpoints
instead of falling back to regular /Items API.
Related to ongoing fix for Xtream content media display.
* 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>
* 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>