From f19c10c528ad2a27c641020ae2f7745c7e0d3a08 Mon Sep 17 00:00:00 2001 From: Ashik K Date: Fri, 17 Oct 2025 13:00:40 +0200 Subject: [PATCH] Revert video player to fullScreen - fixes playback controls MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Reverted video player back to .fullScreen presentation: - Changed @Route(.push) back to @Route(.fullScreen) - Added NavigationViewCoordinator wrapper back - Changed router.popLast() back to router.dismissCoordinator() Video player MUST use fullScreen to: ✅ Properly stop playback on dismiss ✅ Show overlay controls on first ESC ✅ Exit and stop video on second ESC ✅ Prevent video playing in background after navigation Files reverted: - ItemCoordinator.swift: Video player route and factory - Overlay.swift: dismissCoordinator on confirm close - VideoPlayer.swift: dismissCoordinator on video end - LoadingView.swift: dismissCoordinator on cancel 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- Shared/Coordinators/ItemCoordinator.swift | 6 +++--- .../Views/VideoPlayer/Components/LoadingView.swift | 2 +- jellypig tvOS/Views/VideoPlayer/Overlays/Overlay.swift | 2 +- jellypig tvOS/Views/VideoPlayer/VideoPlayer.swift | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/Shared/Coordinators/ItemCoordinator.swift b/Shared/Coordinators/ItemCoordinator.swift index b9d59a98..9a68e28a 100644 --- a/Shared/Coordinators/ItemCoordinator.swift +++ b/Shared/Coordinators/ItemCoordinator.swift @@ -40,7 +40,7 @@ final class ItemCoordinator: NavigationCoordinatable { var itemOverview = makeItemOverview @Route(.fullScreen) var mediaSourceInfo = makeMediaSourceInfo - @Route(.push) + @Route(.fullScreen) var videoPlayer = makeVideoPlayer #endif @@ -90,8 +90,8 @@ final class ItemCoordinator: NavigationCoordinatable { #endif #if os(tvOS) - func makeVideoPlayer(manager: VideoPlayerManager) -> VideoPlayerCoordinator { - VideoPlayerCoordinator(manager: manager) + func makeVideoPlayer(manager: VideoPlayerManager) -> NavigationViewCoordinator { + NavigationViewCoordinator(VideoPlayerCoordinator(manager: manager)) } #endif diff --git a/jellypig tvOS/Views/VideoPlayer/Components/LoadingView.swift b/jellypig tvOS/Views/VideoPlayer/Components/LoadingView.swift index e1aa7e9d..74391c0a 100644 --- a/jellypig tvOS/Views/VideoPlayer/Components/LoadingView.swift +++ b/jellypig tvOS/Views/VideoPlayer/Components/LoadingView.swift @@ -28,7 +28,7 @@ extension VideoPlayer { ProgressView() Button { - router.popLast() + router.dismissCoordinator() } label: { Text(L10n.cancel) .foregroundColor(.red) diff --git a/jellypig tvOS/Views/VideoPlayer/Overlays/Overlay.swift b/jellypig tvOS/Views/VideoPlayer/Overlays/Overlay.swift index d741279d..10360ec4 100644 --- a/jellypig tvOS/Views/VideoPlayer/Overlays/Overlay.swift +++ b/jellypig tvOS/Views/VideoPlayer/Overlays/Overlay.swift @@ -110,7 +110,7 @@ extension VideoPlayer { if isPresentingOverlay && currentOverlayType == .confirmClose { proxy.stop() - router.popLast() + router.dismissCoordinator() } else if isPresentingOverlay && currentOverlayType == .smallMenu { currentOverlayType = .main } else { diff --git a/jellypig tvOS/Views/VideoPlayer/VideoPlayer.swift b/jellypig tvOS/Views/VideoPlayer/VideoPlayer.swift index 9caf91c8..0c41f574 100644 --- a/jellypig tvOS/Views/VideoPlayer/VideoPlayer.swift +++ b/jellypig tvOS/Views/VideoPlayer/VideoPlayer.swift @@ -60,7 +60,7 @@ struct VideoPlayer: View { { videoPlayerManager.selectNextViewModel() } else { - router.popLast() + router.dismissCoordinator() } } }