From 747496996976d5f9d9282bc5b6a7407f66d46c67 Mon Sep 17 00:00:00 2001 From: Shadowfacts Date: Wed, 9 Nov 2022 21:46:52 -0500 Subject: [PATCH] Workaround for AVPlayerViewController controls not respecting safe area Closes #176 --- .../GalleryPlayerViewController.swift | 20 +++++++++++++++++-- .../GalleryViewController.swift | 4 ++-- 2 files changed, 20 insertions(+), 4 deletions(-) diff --git a/Tusker/Screens/Attachment Gallery/GalleryPlayerViewController.swift b/Tusker/Screens/Attachment Gallery/GalleryPlayerViewController.swift index f98abdcf..407276ab 100644 --- a/Tusker/Screens/Attachment Gallery/GalleryPlayerViewController.swift +++ b/Tusker/Screens/Attachment Gallery/GalleryPlayerViewController.swift @@ -10,14 +10,30 @@ import UIKit import AVKit import Pachyderm -class GalleryPlayerViewController: AVPlayerViewController { +class GalleryPlayerViewController: UIViewController { + let playerVC = AVPlayerViewController() + var attachment: Attachment! override func viewDidLoad() { super.viewDidLoad() - allowsPictureInPicturePlayback = true + view.backgroundColor = .black + + playerVC.allowsPictureInPicturePlayback = true + + playerVC.view.translatesAutoresizingMaskIntoConstraints = false + addChild(playerVC) + playerVC.didMove(toParent: self) + view.addSubview(playerVC.view) + + NSLayoutConstraint.activate([ + playerVC.view.leadingAnchor.constraint(equalTo: view.safeAreaLayoutGuide.leadingAnchor), + playerVC.view.trailingAnchor.constraint(equalTo: view.safeAreaLayoutGuide.trailingAnchor), + playerVC.view.topAnchor.constraint(equalTo: view.safeAreaLayoutGuide.topAnchor), + playerVC.view.bottomAnchor.constraint(equalTo: view.safeAreaLayoutGuide.bottomAnchor), + ]) } override func viewDidAppear(_ animated: Bool) { diff --git a/Tusker/Screens/Attachment Gallery/GalleryViewController.swift b/Tusker/Screens/Attachment Gallery/GalleryViewController.swift index 92406f19..fe54b177 100644 --- a/Tusker/Screens/Attachment Gallery/GalleryViewController.swift +++ b/Tusker/Screens/Attachment Gallery/GalleryViewController.swift @@ -93,8 +93,8 @@ class GalleryViewController: UIPageViewController, UIPageViewControllerDataSourc return vc case .video, .audio: let vc = GalleryPlayerViewController() - vc.player = AVPlayer(url: attachment.url) - vc.delegate = avPlayerViewControllerDelegate + vc.playerVC.player = AVPlayer(url: attachment.url) + vc.playerVC.delegate = avPlayerViewControllerDelegate vc.attachment = attachment return vc case .gifv: