jellyflood/Shared/ViewModels
Ashik K ed91d39ad9 Implement dual provider architecture (Jellyfin + Xtream)
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>
2025-10-18 11:47:41 +02:00
..
AdminDashboard Implement localization for hardcoded strings (#1510) 2025-05-02 13:04:34 -04:00
ItemAdministration [iOS & tvOS] Upgrade SDK to 10.10 (#1463) 2025-04-06 23:42:47 -04:00
ItemViewModel Rename all Swiftfin files to lowercase jellypig 2025-10-17 09:28:57 +02:00
LibraryViewModel Add channel support and debug logging for Xtream content display 2025-10-17 10:49:20 +02:00
MediaViewModel Implement dual provider architecture (Jellyfin + Xtream) 2025-10-18 11:47:41 +02:00
VideoPlayerManager [iOS & tvOS] Upgrade SDK to 10.10 (#1463) 2025-04-06 23:42:47 -04:00
XtreamViewModel Implement dual provider architecture (Jellyfin + Xtream) 2025-10-18 11:47:41 +02:00
ChannelLibraryViewModel.swift [iOS & tvOS] Upgrade SDK to 10.10 (#1463) 2025-04-06 23:42:47 -04:00
ConnectToServerViewModel.swift Rename all Swiftfin files to lowercase jellypig 2025-10-17 09:28:57 +02:00
ConnectToXtreamViewModel.swift Rename project from jellypig to jellyflood 2025-10-18 09:14:33 +02:00
DownloadListViewModel.swift [Meta] 2025 Disclaimer (#1381) 2025-01-02 16:05:15 -07:00
EPGViewModel.swift Implement Electronic Program Guide (EPG) for Live TV 2025-10-17 19:23:53 +02:00
FilterViewModel.swift Stateful - Set cleanup and `final` classes (#1465) 2025-03-29 23:05:14 -06:00
HomeViewModel.swift Rename all Swiftfin files to lowercase jellypig 2025-10-17 09:28:57 +02:00
LiveVideoPlayerManager.swift Rename project from jellypig to jellyflood 2025-10-18 09:14:33 +02:00
ParentalRatingsViewModel.swift Stateful - Set cleanup and `final` classes (#1465) 2025-03-29 23:05:14 -06:00
ProgramsViewModel.swift Stateful - Set cleanup and `final` classes (#1465) 2025-03-29 23:05:14 -06:00
QuickConnectAuthorizeViewModel.swift [iOS] Admin Dashboard - QuickConnect Other User (#1488) 2025-04-14 17:19:32 -04:00
ResetUserPasswordViewModel.swift [Meta] 2025 Disclaimer (#1381) 2025-01-02 16:05:15 -07:00
SearchViewModel.swift Stateful - Set cleanup and `final` classes (#1465) 2025-03-29 23:05:14 -06:00
SelectUserViewModel.swift Implement localization for hardcoded strings (#1510) 2025-05-02 13:04:34 -04:00
ServerCheckViewModel.swift Stateful - Set cleanup and `final` classes (#1465) 2025-03-29 23:05:14 -06:00
ServerConnectionViewModel.swift Stateful - Set cleanup and `final` classes (#1465) 2025-03-29 23:05:14 -06:00
ServerLogsViewModel.swift Stateful - Set cleanup and `final` classes (#1465) 2025-03-29 23:05:14 -06:00
SettingsViewModel.swift [tvOS] App Settings & Splashscreen (#1419) 2025-02-06 20:59:18 -07:00
UserLocalSecurityViewModel.swift Implement localization for hardcoded strings (#1510) 2025-05-02 13:04:34 -04:00
UserProfileImageViewModel.swift Rename all Swiftfin files to lowercase jellypig 2025-10-17 09:28:57 +02:00
UserSignInViewModel.swift Stateful - Set cleanup and `final` classes (#1465) 2025-03-29 23:05:14 -06:00
VideoPlayerViewModel.swift Implement Electronic Program Guide (EPG) for Live TV 2025-10-17 19:23:53 +02:00
ViewModel.swift [Meta] 2025 Disclaimer (#1381) 2025-01-02 16:05:15 -07:00