marinofaggiana 4 years ago
parent
commit
23dcbe51cd

+ 0 - 1
iOSClient/Supporting Files/en.lproj/Localizable.strings

@@ -143,7 +143,6 @@
 "_leave_share_"             = "Leave this share";
 "_delete_file_"             = "Delete file";
 "_delete_folder_"           = "Delete folder";
-"_video_streaming_"         = "Video in streaming";
 "_LIVE_"                    = "LIVE";
 
 // App

+ 8 - 5
iOSClient/Viewer/NCViewerImage/NCViewerImage.swift

@@ -330,10 +330,16 @@ class NCViewerImage: UIViewController, UIGestureRecognizerDelegate {
         }
     }
     
+    //
+    // Detect for LIVE
+    //
     @objc func didLongpressGestureEvent(gestureRecognizer: UITapGestureRecognizer) {
-        
+                
         if gestureRecognizer.state == .began {
             
+            currentViewerImageZoom?.statusViewImage.isHidden = true
+            currentViewerImageZoom?.statusLabel.isHidden = true
+            
             let fileName = (currentMetadata.fileNameView as NSString).deletingPathExtension + ".mov"
             if let metadata = NCManageDatabase.sharedInstance.getMetadata(predicate: NSPredicate(format: "account == %@ AND serverUrl == %@ AND fileNameView LIKE[c] %@", currentMetadata.account, currentMetadata.serverUrl, fileName)) {
                 
@@ -508,10 +514,7 @@ class NCViewerImage: UIViewController, UIGestureRecognizerDelegate {
     func videoPlayWith(metadata: tableMetadata) {
                 
         var videoURL: URL?
-        
-        currentViewerImageZoom?.statusViewImage.isHidden = true
-        currentViewerImageZoom?.statusLabel.isHidden = true
-        
+                
         NCKTVHTTPCache.shared.startProxy(user: appDelegate.user, password: appDelegate.password, metadata: metadata)
 
         if CCUtility.fileProviderStorageExists(metadata.ocId, fileNameView: metadata.fileNameView) {

+ 1 - 6
iOSClient/Viewer/NCViewerImage/NCViewerImageZoom.swift

@@ -65,12 +65,7 @@ class NCViewerImageZoom: UIViewController {
         if NCManageDatabase.sharedInstance.isLivePhoto(metadata: metadata) != nil {
             statusViewImage.image = CCGraphics.changeThemingColorImage(UIImage.init(named: "livePhoto"), width: 100, height: 100, color: .gray)
             statusLabel.text = NSLocalizedString("_LIVE_", comment: "")
-        } else if metadata.typeFile == k_metadataTypeFile_video || metadata.typeFile == k_metadataTypeFile_audio {
-            statusViewImage.image = CCGraphics.changeThemingColorImage(UIImage.init(named: "play"), width: 100, height: 100, color: .gray)
-            if !CCUtility.fileProviderStorageExists(metadata.ocId, fileNameView: metadata.fileNameView) {
-                statusLabel.text = NSLocalizedString("_video_streaming_", comment: "")
-            }
-        } else {
+        }  else {
             statusViewImage.image = nil
             statusLabel.text = ""
         }

+ 13 - 6
iOSClient/Viewer/NCViewerVideoAudio/NCViewerVideoAudio.swift

@@ -27,10 +27,15 @@ class NCViewerVideoAudio: AVPlayerViewController {
     
     let appDelegate = UIApplication.shared.delegate as! AppDelegate
     var metadata = tableMetadata()
+    private var rateObserverToken: Any?
 
     override func viewDidLoad() {
         super.viewDidLoad()
-
+    }
+    
+    override func viewDidAppear(_ animated: Bool) {
+        super.viewDidAppear(animated)
+        
         var videoURL: URL?
 
         NCKTVHTTPCache.shared.startProxy(user: appDelegate.user, password: appDelegate.password, metadata: metadata)
@@ -58,7 +63,7 @@ class NCViewerVideoAudio: AVPlayerViewController {
                 self.player?.seek(to: CMTime.zero)
             }
         
-            player?.addObserver(self, forKeyPath: "rate", options: [], context: nil)
+            rateObserverToken = player?.addObserver(self, forKeyPath: "rate", options: [], context: nil)
             player?.play()
         }
     }
@@ -68,10 +73,12 @@ class NCViewerVideoAudio: AVPlayerViewController {
         
         player?.pause()
         
-        player?.removeObserver(self, forKeyPath: "rate")
-        NotificationCenter.default.removeObserver(self, name: NSNotification.Name.AVPlayerItemDidPlayToEndTime, object: nil)
-        
-        NCKTVHTTPCache.shared.stopProxy()
+        if rateObserverToken != nil {
+            player?.removeObserver(self, forKeyPath: "rate")
+            NotificationCenter.default.removeObserver(self, name: NSNotification.Name.AVPlayerItemDidPlayToEndTime, object: nil)
+            NCKTVHTTPCache.shared.stopProxy()
+            self.rateObserverToken = nil
+        }
     }
     
     //MARK: - Observer