Changes:
- MediaCoordinator: Use .fullScreen for tvOS (full-screen display with navigation)
- HomeCoordinator, LibraryCoordinator, SearchCoordinator: Use .push without NavigationViewCoordinator wrappers
- Unified tvOS and iOS coordinator return types for push navigation
This fixes:
✅ Channels display full-screen (not modal popup)
✅ Login and settings use full-screen navigation
✅ Items from Home/Search display correctly
Known issues with .fullScreen presentation:
- Pressing ESC on error dismisses entire channel instead of going back one level
- Video player doesn't respond to ESC during playback
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Changed all modal routes to push in login and settings coordinators:
- SelectUserCoordinator: login flow, server connection, advanced settings
- UserSignInCoordinator: quick connect, security settings
- SettingsCoordinator: all settings pages (both iOS and tvOS)
- AppSettingsCoordinator: log viewer
All screens now use full-screen push navigation instead of modal popups.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Changed item routing from .modal to .push in HomeCoordinator, LibraryCoordinator, and SearchCoordinator. Individual media items (movies, episodes, etc.) now open full-screen instead of in modal dialogs.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Changed MediaCoordinator routing from .modal to .push for tvOS to match native library behavior. All channels (Xtream VOD, Xtream Series, Live TV, etc.) now display in full-screen grid layout instead of a small centered modal window.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Changes:
- Update bundle identifier from org.jellyfin.swiftfin to org.ashik.jellypig
- Updated in project.pbxproj (4 occurrences)
- Updated in LogManager.swift (logger label)
- Updated in DataCache.swift (cache paths)
- Fix SwiftGen build script to skip gracefully without error
- Changed "error:" to "note:" to prevent Xcode build errors
- Script now exits cleanly when SwiftGen not installed (English-only fork)
This allows the app to be signed with a personal Apple Developer account
and built successfully without SwiftGen dependency.
- 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.
- Modified ItemLibraryViewModel to detect channel/channelFolderItem types
- Added getChannelItems() method to use Paths.getChannelItems API for channels
- Channel folders now use channelID and folderID parameters correctly
- Modified PagingLibraryView to route .channelFolderItem to library grid view
This enables proper navigation for Jellyfin.Xtream plugin channels:
Channel → Grid of Categories → Grid of Content → Item Detail
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Changed the jellyfin-blob.svg gradient from blue (#1F4EA7 to #00DDFF)
to bright pink (#C8197C to #FF1493) to match the jellypig branding.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Added DeviceIcons from upstream to tvOS assets catalog
- Built and installed SwiftGen 6.6.3 from source to /opt/homebrew/bin
- Build now succeeds with all ImageResource references resolved
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Renamed SwiftfinApp.swift to jellypigapp.swift
- Renamed SwiftfinStore/ to jellypigstore/
- Renamed all SwiftfinStore files to jellypigstore
- Renamed SwiftfinDefaults.swift to jellypigdefaults.swift
- Renamed VideoPlayerType+Swiftfin.swift to VideoPlayerType+jellypig.swift
- Updated all project.pbxproj file references to match new names
All file names now use lowercase jellypig for consistency.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Revert SwiftfinApp/SwiftfinStore file name changes (files weren't renamed, only refs)
- Change SwiftGen error to warning and exit 0 instead of return 1
- Allows build to continue without SwiftGen installed (English-only fork)
- Converted all 14 tvOS icon PNG files from blue to hot pink
- Applied to app icons, top shelf images, and App Store icons
- Distinguishes jellypig from upstream Swiftfin visually
- Used Python script with Pillow for color transformation
- Removed entire jellypig iOS directory
- Removed jellypig iOS.xcscheme
- jellypig is now tvOS-only for Apple TV usage
- Focusing on Jellyfin.Xtream plugin compatibility
* off recursive
* pr feedback
* Cleanup
Instantiate the collectionType in the `if let` since failure to cast `as? BaseItemDto` should count as false as well. Only set `parameters.isRecursive` once in if/else opposed to if -> override.
* wip
* fix recursive and item kinds
* rename, fix folders
---------
Co-authored-by: Quang <quang.ha@a2:3c:68:56:26:8d.home>
Co-authored-by: Joe <jpkribs@outlook.com>
Co-authored-by: Ethan Pippin <ethanpippin2343@gmail.com>
Co-authored-by: Quang <quang.ha@QrM3P.local>