diff --git a/Shared/Coordinators/LiveTVChannelsCoordinator.swift b/Shared/Coordinators/LiveTVChannelsCoordinator.swift index 1797bd14..63793bab 100644 --- a/Shared/Coordinators/LiveTVChannelsCoordinator.swift +++ b/Shared/Coordinators/LiveTVChannelsCoordinator.swift @@ -25,9 +25,9 @@ final class LiveTVChannelsCoordinator: NavigationCoordinatable { NavigationViewCoordinator(ItemCoordinator(item: item)) } - func makeVideoPlayer(item: BaseItemDto) -> NavigationViewCoordinator { - // NavigationViewCoordinator(VideoPlayerCoordinator(item: item)) - NavigationViewCoordinator(EmptyViewCoordinator()) + func makeVideoPlayer(viewModel: VideoPlayerViewModel) -> NavigationViewCoordinator { + NavigationViewCoordinator(VideoPlayerCoordinator(viewModel: viewModel)) +// NavigationViewCoordinator(EmptyViewCoordinator()) } @ViewBuilder diff --git a/Shared/ViewModels/LiveTVChannelsViewModel.swift b/Shared/ViewModels/LiveTVChannelsViewModel.swift index f2f61acd..8d3aea3a 100644 --- a/Shared/ViewModels/LiveTVChannelsViewModel.swift +++ b/Shared/ViewModels/LiveTVChannelsViewModel.swift @@ -189,6 +189,16 @@ final class LiveTVChannelsViewModel: ViewModel { func stopScheduleCheckTimer() { timer?.invalidate() } + + func fetchVideoPlayerViewModel(item: BaseItemDto, completion: @escaping (VideoPlayerViewModel)->Void) { + item.createVideoPlayerViewModel() + .sink { completion in + self.handleAPIRequestError(completion: completion) + } receiveValue: { videoPlayerViewModel in + completion(videoPlayerViewModel) + } + .store(in: &self.cancellables) + } } extension Array { diff --git a/Swiftfin tvOS/Views/LiveTVChannelsView.swift b/Swiftfin tvOS/Views/LiveTVChannelsView.swift index e123ebf6..29730670 100644 --- a/Swiftfin tvOS/Views/LiveTVChannelsView.swift +++ b/Swiftfin tvOS/Views/LiveTVChannelsView.swift @@ -55,7 +55,9 @@ struct LiveTVChannelsView: View { let channel = item.channel if channel.type != "Folder" { Button { - self.router.route(to: \.videoPlayer, channel) + self.viewModel.fetchVideoPlayerViewModel(item: channel) { playerViewModel in + self.router.route(to: \.videoPlayer, playerViewModel) + } } label: { LiveTVChannelItemElement(channel: channel, program: item.program,