marinofaggiana 5 years ago
parent
commit
15e285fa34

+ 23 - 0
iOSClient/Main/NCDetailViewController.swift

@@ -517,6 +517,11 @@ extension NCDetailViewController: NCViewerImageViewControllerDelegate, NCViewerI
             
         }
         
+        // Status Current
+        if index == viewerImageViewController.currentItemIndex {
+            statusViewImage(metadata: metadata, viewerImageViewController: viewerImageViewController)
+        }
+        
         // Preview for Video
         if metadata.typeFile == k_metadataTypeFile_video && !isPreview && isImage {
             
@@ -600,6 +605,8 @@ extension NCDetailViewController: NCViewerImageViewControllerDelegate, NCViewerI
                 }
             }
         }
+        
+        statusViewImage(metadata: metadata, viewerImageViewController: viewerImageViewController)
     }
     
     func viewerImageViewControllerTap(_ viewerImageViewController: NCViewerImageViewController, metadata: tableMetadata) {
@@ -689,6 +696,14 @@ extension NCDetailViewController: NCViewerImageViewControllerDelegate, NCViewerI
         appDelegate.startLoadAutoDownloadUpload()
     }
     
+    func statusViewImage(metadata: tableMetadata, viewerImageViewController: NCViewerImageViewController) {
+        if hasMOV(metadata: metadata) != nil {
+            viewerImageViewController.statusView.image = UIImage.init(named: "livePhoto")
+        } else {
+            viewerImageViewController.statusView.image = nil
+        }
+    }
+    
     func viewMOV(viewerImageViewController: NCViewerImageViewController, metadata: tableMetadata) {
         if !viewerImageViewControllerLongPressInProgress { return }
         
@@ -701,4 +716,12 @@ extension NCDetailViewController: NCViewerImageViewControllerDelegate, NCViewerI
             appDelegate.player?.play()
         }
     }
+    
+    func hasMOV(metadata: tableMetadata) -> tableMetadata? {
+        
+        if metadata.typeFile != k_metadataTypeFile_image { return nil }
+        let fileName = (metadata.fileNameView as NSString).deletingPathExtension + ".mov"
+        let metadata = NCManageDatabase.sharedInstance.getMetadata(predicate: NSPredicate(format: "account == %@ AND serverUrl == %@ AND fileNameView LIKE[c] %@", metadata.account, metadata.serverUrl, fileName))
+        return metadata
+    }
 }

+ 0 - 38
iOSClient/Viewer/NCViewerImage/NCViewerImageContentView.swift

@@ -75,16 +75,6 @@ public class NCViewerImageContentView: UIScrollView {
             }
         }
     }
-    internal var isStatusView: Bool = false {
-        didSet {
-            statusView.isHidden = !isStatusView
-            if isStatusView {
-                //
-            } else {
-                //
-            }
-        }
-    }
     internal var zoomLevels: ZoomScale? {
         didSet {
             zoomScale = ZoomScale.default.minimumZoomScale
@@ -98,7 +88,6 @@ public class NCViewerImageContentView: UIScrollView {
     private enum Constants {
 
         static let indicatorViewSize: CGFloat = 60.0
-        static let statusViewSize: CGFloat = 60.0
     }
 
     // MARK: - Private variables
@@ -126,14 +115,6 @@ public class NCViewerImageContentView: UIScrollView {
         return container
     }()
 
-    private lazy var statusView: UIImageView = {
-        let statusView = UIImageView()
-        statusView.autoresizingMask = [.flexibleWidth, .flexibleHeight]
-        statusView.contentMode = .scaleAspectFit
-        statusView.clipsToBounds = true
-        return statusView
-    }()
-    
     private lazy var doubleTapGestureRecognizer: UITapGestureRecognizer = { [unowned self] in
         let gesture = UITapGestureRecognizer(target: self, action: #selector(didDoubleTap(_:)))
         gesture.numberOfTapsRequired = 2
@@ -168,8 +149,6 @@ extension NCViewerImageContentView {
 
         setupIndicatorView()
 
-        setupStatusView()
-        
         configureScrollView()
 
         addGestureRecognizer(doubleTapGestureRecognizer)
@@ -222,23 +201,6 @@ extension NCViewerImageContentView {
 
         indicatorContainer.isHidden = true
     }
-    
-    private func setupStatusView() {
-
-        addSubview(statusView)
-        statusView.translatesAutoresizingMaskIntoConstraints = false
-        NSLayoutConstraint.activate([
-            statusView.widthAnchor.constraint(equalToConstant: Constants.statusViewSize),
-            statusView.heightAnchor.constraint(equalToConstant: Constants.statusViewSize),
-            statusView.topAnchor.constraint(equalTo: imageView.topAnchor),
-            statusView.leftAnchor.constraint(equalTo: imageView.leftAnchor)
-        ])
-
-        statusView.setNeedsLayout()
-        statusView.layoutIfNeeded()
-
-        statusView.isHidden = true
-    }
 
     internal func updateTransform() {
 

+ 20 - 0
iOSClient/Viewer/NCViewerImage/NCViewerImageViewController.swift

@@ -186,6 +186,14 @@ public class NCViewerImageViewController: UIViewController {
         container.backgroundColor = .clear
         return container
     }()
+    
+    lazy var statusView: UIImageView = {
+        let statusView = UIImageView()
+        statusView.autoresizingMask = [.flexibleWidth, .flexibleHeight]
+        statusView.contentMode = .scaleAspectFit
+        statusView.clipsToBounds = true
+        return statusView
+    }()
 
     lazy private var pageControl: UIPageControl = { [unowned self] in
         let pageControl = UIPageControl()
@@ -310,6 +318,18 @@ extension NCViewerImageViewController {
             mediaContainerView.topAnchor.constraint(equalTo: view.topAnchor),
             mediaContainerView.bottomAnchor.constraint(equalTo: view.bottomAnchor)
         ])
+        
+        view.addSubview(statusView)
+        statusView.translatesAutoresizingMaskIntoConstraints = false
+        NSLayoutConstraint.activate([
+            statusView.widthAnchor.constraint(equalToConstant: 30),
+            statusView.heightAnchor.constraint(equalToConstant: 30),
+            statusView.topAnchor.constraint(equalTo: view.topAnchor, constant: 2),
+            statusView.leftAnchor.constraint(equalTo: view.leftAnchor, constant: 2)
+        ])
+
+        statusView.setNeedsLayout()
+        statusView.layoutIfNeeded()
 
         NCViewerImageContentView.interItemSpacing = gapBetweenMediaViews
         NCViewerImageContentView.contentTransformer = contentTransformer