From 2e5eb48cc651d8663799923c08c15e0b5a61ffe5 Mon Sep 17 00:00:00 2001 From: Ethan Pippin Date: Sat, 1 Jan 2022 21:53:14 -0700 Subject: [PATCH] move back to pressesBegan for button presses and renamings --- .../VideoPlayer/PlayerOverlayDelegate.swift | 2 +- .../VideoPlayer/VLCPlayerViewController.swift | 51 ++++++++++--------- .../tvOSOverlay/tvOSVLCOverlay.swift | 4 +- .../VLCPlayerCompactOverlayView.swift | 2 +- .../Overlays/VLCPlayerOverlayView.swift | 2 +- .../VideoPlayer/PlayerOverlayDelegate.swift | 2 +- .../VideoPlayer/VLCPlayerViewController.swift | 2 +- 7 files changed, 35 insertions(+), 30 deletions(-) diff --git a/JellyfinPlayer tvOS/Views/VideoPlayer/PlayerOverlayDelegate.swift b/JellyfinPlayer tvOS/Views/VideoPlayer/PlayerOverlayDelegate.swift index bd95a0ec..456b8823 100644 --- a/JellyfinPlayer tvOS/Views/VideoPlayer/PlayerOverlayDelegate.swift +++ b/JellyfinPlayer tvOS/Views/VideoPlayer/PlayerOverlayDelegate.swift @@ -12,7 +12,7 @@ protocol PlayerOverlayDelegate { func didSelectClose() func didSelectGoogleCast() func didSelectAirplay() - func didSelectCaptions() + func didSelectSubtitles() func didSelectMenu() func didDeselectMenu() diff --git a/JellyfinPlayer tvOS/Views/VideoPlayer/VLCPlayerViewController.swift b/JellyfinPlayer tvOS/Views/VideoPlayer/VLCPlayerViewController.swift index 9c56e0c7..3cdbb48c 100644 --- a/JellyfinPlayer tvOS/Views/VideoPlayer/VLCPlayerViewController.swift +++ b/JellyfinPlayer tvOS/Views/VideoPlayer/VLCPlayerViewController.swift @@ -128,7 +128,7 @@ class VLCPlayerViewController: UIViewController { setupPanGestureRecognizer() - setupButtonPressRecognizers() + addButtonPressRecognizer(pressType: .menu, action: #selector(didPressMenu)) let defaultNotificationCenter = NotificationCenter.default defaultNotificationCenter.addObserver(self, selector: #selector(appWillTerminate), name: UIApplication.willTerminateNotification, object: nil) @@ -189,11 +189,32 @@ class VLCPlayerViewController: UIViewController { view.addGestureRecognizer(panGestureRecognizer) } - private func setupButtonPressRecognizers() { - addButtonPressRecognizer(pressType: .menu, action: #selector(didPressMenu)) - addButtonPressRecognizer(pressType: .playPause, action: #selector(didPressPlayPause)) - addButtonPressRecognizer(pressType: .leftArrow, action: #selector(didPressLeftArrow)) - addButtonPressRecognizer(pressType: .rightArrow, action: #selector(didPressRightArrow)) + // MARK: pressesBegan + override func pressesBegan(_ presses: Set, with event: UIPressesEvent?) { + guard let buttonPress = presses.first?.type else { return } + + switch(buttonPress) { + case .menu: + print("Menu") + case .playPause: + didSelectMain() + case .select: + didGenerallyTap() + case .upArrow: + print("Up arrow") + case .downArrow: + print("Down arrow") + case .leftArrow: + didSelectBackward() + print("Left arrow") + case .rightArrow: + didSelectForward() + case .pageUp: + print("page up") + case .pageDown: + print("page down") + @unknown default: () + } } private func addButtonPressRecognizer(pressType: UIPress.PressType, action: Selector) { @@ -213,22 +234,6 @@ class VLCPlayerViewController: UIViewController { } } - @objc private func didPressPlayPause() { - didSelectMain() - } - - @objc private func didPressSelect() { - didGenerallyTap() - } - - @objc private func didPressLeftArrow() { - didSelectBackward() - } - - @objc private func didPressRightArrow() { - didSelectForward() - } - @objc private func userPanned(panGestureRecognizer: UIPanGestureRecognizer) { if displayingOverlay { restartOverlayDismissTimer() @@ -611,7 +616,7 @@ extension VLCPlayerViewController: PlayerOverlayDelegate { print("didSelectAirplay") } - func didSelectCaptions() { + func didSelectSubtitles() { viewModel.subtitlesEnabled = !viewModel.subtitlesEnabled diff --git a/JellyfinPlayer tvOS/Views/VideoPlayer/tvOSOverlay/tvOSVLCOverlay.swift b/JellyfinPlayer tvOS/Views/VideoPlayer/tvOSOverlay/tvOSVLCOverlay.swift index b6de77f9..ab3b8b76 100644 --- a/JellyfinPlayer tvOS/Views/VideoPlayer/tvOSOverlay/tvOSVLCOverlay.swift +++ b/JellyfinPlayer tvOS/Views/VideoPlayer/tvOSOverlay/tvOSVLCOverlay.swift @@ -74,12 +74,12 @@ struct tvOSVLCOverlay: View { if !viewModel.subtitleStreams.isEmpty { if viewModel.subtitlesEnabled { SFSymbolButton(systemName: "captions.bubble.fill") { - viewModel.playerOverlayDelegate?.didSelectCaptions() + viewModel.playerOverlayDelegate?.didSelectSubtitles() } .frame(maxWidth: 30, maxHeight: 30) } else { SFSymbolButton(systemName: "captions.bubble") { - viewModel.playerOverlayDelegate?.didSelectCaptions() + viewModel.playerOverlayDelegate?.didSelectSubtitles() } .frame(maxWidth: 30, maxHeight: 30) } diff --git a/JellyfinPlayer/Views/VideoPlayer/Overlays/VLCPlayerCompactOverlayView.swift b/JellyfinPlayer/Views/VideoPlayer/Overlays/VLCPlayerCompactOverlayView.swift index 363b764c..9a9ceda0 100644 --- a/JellyfinPlayer/Views/VideoPlayer/Overlays/VLCPlayerCompactOverlayView.swift +++ b/JellyfinPlayer/Views/VideoPlayer/Overlays/VLCPlayerCompactOverlayView.swift @@ -117,7 +117,7 @@ struct VLCPlayerCompactOverlayView: View, VideoPlayerOverlay { if !viewModel.subtitleStreams.isEmpty { Button { - viewModel.playerOverlayDelegate?.didSelectCaptions() + viewModel.playerOverlayDelegate?.didSelectSubtitles() } label: { if viewModel.subtitlesEnabled { Image(systemName: "captions.bubble.fill") diff --git a/JellyfinPlayer/Views/VideoPlayer/Overlays/VLCPlayerOverlayView.swift b/JellyfinPlayer/Views/VideoPlayer/Overlays/VLCPlayerOverlayView.swift index 00971f26..a57f3bf6 100644 --- a/JellyfinPlayer/Views/VideoPlayer/Overlays/VLCPlayerOverlayView.swift +++ b/JellyfinPlayer/Views/VideoPlayer/Overlays/VLCPlayerOverlayView.swift @@ -76,7 +76,7 @@ struct VLCPlayerOverlayView: View { } Button { - viewModel.playerOverlayDelegate?.didSelectCaptions() + viewModel.playerOverlayDelegate?.didSelectSubtitles() } label: { if viewModel.subtitlesEnabled { Image(systemName: "captions.bubble.fill") diff --git a/JellyfinPlayer/Views/VideoPlayer/PlayerOverlayDelegate.swift b/JellyfinPlayer/Views/VideoPlayer/PlayerOverlayDelegate.swift index e30045ab..f5affe9d 100644 --- a/JellyfinPlayer/Views/VideoPlayer/PlayerOverlayDelegate.swift +++ b/JellyfinPlayer/Views/VideoPlayer/PlayerOverlayDelegate.swift @@ -12,7 +12,7 @@ protocol PlayerOverlayDelegate { func didSelectClose() func didSelectGoogleCast() func didSelectAirplay() - func didSelectCaptions() + func didSelectSubtitles() func didSelectMenu() func didDeselectMenu() diff --git a/JellyfinPlayer/Views/VideoPlayer/VLCPlayerViewController.swift b/JellyfinPlayer/Views/VideoPlayer/VLCPlayerViewController.swift index 5d83e568..1a9359f8 100644 --- a/JellyfinPlayer/Views/VideoPlayer/VLCPlayerViewController.swift +++ b/JellyfinPlayer/Views/VideoPlayer/VLCPlayerViewController.swift @@ -468,7 +468,7 @@ extension VLCPlayerViewController: PlayerOverlayDelegate { print("didSelectAirplay") } - func didSelectCaptions() { + func didSelectSubtitles() { viewModel.subtitlesEnabled = !viewModel.subtitlesEnabled