diff --git a/JellyfinPlayer tvOS/Components/MediaPlayButtonRowView.swift b/JellyfinPlayer tvOS/Components/MediaPlayButtonRowView.swift index 4e6ef971..fadbc207 100644 --- a/JellyfinPlayer tvOS/Components/MediaPlayButtonRowView.swift +++ b/JellyfinPlayer tvOS/Components/MediaPlayButtonRowView.swift @@ -10,14 +10,16 @@ import SwiftUI struct MediaPlayButtonRowView: View { - + @EnvironmentObject var itemRouter: ItemCoordinator.Router @ObservedObject var viewModel: ItemViewModel @State var wrappedScrollView: UIScrollView? var body: some View { HStack { VStack { - NavigationLink(destination: VideoPlayerView(item: viewModel.item).ignoresSafeArea()) { + Button { + self.itemRouter.route(to: \.videoPlayer, viewModel.item) + } label: { MediaViewActionButton(icon: "play.fill", scrollView: $wrappedScrollView) } Text(viewModel.item.getItemProgressString() != "" ? "\(viewModel.item.getItemProgressString()) left" : L10n.play) diff --git a/JellyfinPlayer tvOS/Views/VideoPlayer/VideoPlayer.swift b/JellyfinPlayer tvOS/Views/VideoPlayer/VideoPlayer.swift index 809ad75a..8e5b72fc 100644 --- a/JellyfinPlayer tvOS/Views/VideoPlayer/VideoPlayer.swift +++ b/JellyfinPlayer tvOS/Views/VideoPlayer/VideoPlayer.swift @@ -7,17 +7,23 @@ * Copyright 2021 Aiden Vigue & Jellyfin Contributors */ +import Stinsen import SwiftUI import JellyfinAPI struct VideoPlayerView: UIViewControllerRepresentable { - var item: BaseItemDto + @EnvironmentObject var router: VideoPlayerCoordinator.Router + var item: BaseItemDto + func makeUIViewController(context: Context) -> some UIViewController { let storyboard = UIStoryboard(name: "VideoPlayer", bundle: nil) let viewController = storyboard.instantiateViewController(withIdentifier: "VideoPlayer") as! VideoPlayerViewController viewController.manifest = item + viewController.backAction = { + self.router.dismissCoordinator() + } return viewController } diff --git a/JellyfinPlayer tvOS/Views/VideoPlayer/VideoPlayerViewController.swift b/JellyfinPlayer tvOS/Views/VideoPlayer/VideoPlayerViewController.swift index e680ddaa..2f0a81d7 100644 --- a/JellyfinPlayer tvOS/Views/VideoPlayer/VideoPlayerViewController.swift +++ b/JellyfinPlayer tvOS/Views/VideoPlayer/VideoPlayerViewController.swift @@ -65,6 +65,7 @@ class VideoPlayerViewController: UIViewController, VideoPlayerSettingsDelegate, var manifest: BaseItemDto = BaseItemDto() var playbackItem = PlaybackItem() var playSessionId: String = "" + var backAction = {} var cancellables = Set() @@ -486,7 +487,7 @@ class VideoPlayerViewController: UIViewController, VideoPlayerSettingsDelegate, self.resignFirstResponder() mediaPlayer.stop() sendStopReport() - self.navigationController?.popViewController(animated: true) + backAction() } } diff --git a/Shared/Coordinators/VideoPlayerCoordinator.swift b/Shared/Coordinators/VideoPlayerCoordinator.swift index b4feb6fd..09f6f647 100644 --- a/Shared/Coordinators/VideoPlayerCoordinator.swift +++ b/Shared/Coordinators/VideoPlayerCoordinator.swift @@ -26,5 +26,6 @@ final class VideoPlayerCoordinator: NavigationCoordinatable { @ViewBuilder func makeStart() -> some View { VideoPlayerView(item: item) + .ignoresSafeArea() } }