|
@@ -69,6 +69,10 @@ class NCViewerMediaPage: UIViewController {
|
|
|
var previousTrackCommand: Any?
|
|
|
let utilityFileSystem = NCUtilityFileSystem()
|
|
|
|
|
|
+ // This prevents the scroll views to scroll when you drag and drop files/images/subjects (from this or other apps)
|
|
|
+ // https://forums.developer.apple.com/forums/thread/89396 and https://forums.developer.apple.com/forums/thread/115736
|
|
|
+ var preventScrollOnDragAndDrop = true
|
|
|
+
|
|
|
var timerAutoHide: Timer?
|
|
|
private var timerAutoHideSeconds: Double = 4
|
|
|
|
|
@@ -137,6 +141,12 @@ class NCViewerMediaPage: UIViewController {
|
|
|
} else {
|
|
|
navigationItem.rightBarButtonItems = [moreNavigationItem]
|
|
|
}
|
|
|
+
|
|
|
+ for view in self.pageViewController.view.subviews {
|
|
|
+ if let scrollView = view as? UIScrollView {
|
|
|
+ scrollView.delegate = self
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
deinit {
|
|
@@ -225,7 +235,6 @@ class NCViewerMediaPage: UIViewController {
|
|
|
}
|
|
|
|
|
|
func changeScreenMode(mode: ScreenMode) {
|
|
|
-
|
|
|
let metadata = currentViewController.metadata
|
|
|
let fullscreen = currentViewController.playerToolBar?.isFullscreen ?? false
|
|
|
|
|
@@ -625,7 +634,6 @@ extension NCViewerMediaPage: UIPageViewControllerDelegate, UIPageViewControllerD
|
|
|
extension NCViewerMediaPage: UIGestureRecognizerDelegate {
|
|
|
|
|
|
func gestureRecognizerShouldBegin(_ gestureRecognizer: UIGestureRecognizer) -> Bool {
|
|
|
-
|
|
|
if let gestureRecognizer = gestureRecognizer as? UIPanGestureRecognizer {
|
|
|
let velocity = gestureRecognizer.velocity(in: self.view)
|
|
|
|
|
@@ -716,3 +724,26 @@ extension NCViewerMediaPage: NCViewerMediaViewDelegate {
|
|
|
imageDetailNavigationItem.image = UIImage(systemName: "info.circle")
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+extension NCViewerMediaPage: UIScrollViewDelegate {
|
|
|
+
|
|
|
+ func scrollViewWillBeginDragging(_ scrollView: UIScrollView) {
|
|
|
+ preventScrollOnDragAndDrop = false
|
|
|
+ }
|
|
|
+
|
|
|
+ func scrollViewDidScroll(_ scrollView: UIScrollView) {
|
|
|
+ if preventScrollOnDragAndDrop {
|
|
|
+ scrollView.setContentOffset(CGPoint(x: view.frame.width + 10, y: 0), animated: false)
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ func scrollViewDidEndDragging(_ scrollView: UIScrollView, willDecelerate decelerate: Bool) {
|
|
|
+ if !decelerate {
|
|
|
+ preventScrollOnDragAndDrop = true
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ func scrollViewDidEndDecelerating(_ scrollView: UIScrollView) {
|
|
|
+ preventScrollOnDragAndDrop = true
|
|
|
+ }
|
|
|
+}
|