marinofaggiana %!s(int64=3) %!d(string=hai) anos
pai
achega
9b7801ae7f

+ 7 - 7
iOSClient/Viewer/NCViewerImage/NCViewerImage.storyboard

@@ -1,9 +1,9 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="18122" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES" initialViewController="ne8-hS-cp3">
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="19162" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES" initialViewController="ne8-hS-cp3">
     <device id="retina5_5" orientation="portrait" appearance="light"/>
     <dependencies>
         <deployment identifier="iOS"/>
-        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="18093"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="19144"/>
         <capability name="Image references" minToolsVersion="12.0"/>
         <capability name="Safe area layout guides" minToolsVersion="9.0"/>
         <capability name="System colors in document resources" minToolsVersion="11.0"/>
@@ -238,7 +238,7 @@
                                                     <action selector="buttonTouchInside:" destination="sBp-t2-eFh" eventType="touchUpInside" id="5fA-20-TD3"/>
                                                 </connections>
                                             </button>
-                                            <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="8AB-hx-yqN">
+                                            <button opaque="NO" contentMode="scaleToFill" enabled="NO" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="8AB-hx-yqN">
                                                 <rect key="frame" x="318.99999999999994" y="62.666666666666629" width="25" height="25"/>
                                                 <constraints>
                                                     <constraint firstAttribute="width" constant="25" id="6yU-23-dkA"/>
@@ -250,10 +250,10 @@
                                                     <action selector="setMute:" destination="sBp-t2-eFh" eventType="touchUpInside" id="cVl-BA-mPJ"/>
                                                 </connections>
                                             </button>
-                                            <slider opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" value="0.5" minValue="0.0" maxValue="1" translatesAutoresizingMaskIntoConstraints="NO" id="SR4-e8-1hC">
+                                            <slider opaque="NO" contentMode="scaleToFill" enabled="NO" contentHorizontalAlignment="center" contentVerticalAlignment="center" value="0.5" minValue="0.0" maxValue="1" translatesAutoresizingMaskIntoConstraints="NO" id="SR4-e8-1hC">
                                                 <rect key="frame" x="18" y="15" width="328" height="31"/>
                                             </slider>
-                                            <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="x3E-b2-obf">
+                                            <button opaque="NO" contentMode="scaleToFill" enabled="NO" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="x3E-b2-obf">
                                                 <rect key="frame" x="162" y="55" width="40" height="40"/>
                                                 <constraints>
                                                     <constraint firstAttribute="width" constant="40" id="Cmv-LX-Phg"/>
@@ -280,7 +280,7 @@
                                                 <nil key="textColor"/>
                                                 <nil key="highlightedColor"/>
                                             </label>
-                                            <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="F9L-PP-AbM">
+                                            <button opaque="NO" contentMode="scaleToFill" enabled="NO" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="F9L-PP-AbM">
                                                 <rect key="frame" x="226.99999999999994" y="55" width="40" height="40"/>
                                                 <constraints>
                                                     <constraint firstAttribute="width" constant="40" id="hlL-XQ-OLa"/>
@@ -291,7 +291,7 @@
                                                     <action selector="forwardButtonSec:" destination="sBp-t2-eFh" eventType="touchUpInside" id="QPi-TQ-rNF"/>
                                                 </connections>
                                             </button>
-                                            <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Isy-sX-Gji">
+                                            <button opaque="NO" contentMode="scaleToFill" enabled="NO" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Isy-sX-Gji">
                                                 <rect key="frame" x="97" y="55" width="40" height="40"/>
                                                 <constraints>
                                                     <constraint firstAttribute="width" constant="40" id="COm-r2-ubw"/>

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

@@ -565,7 +565,6 @@ extension NCViewerImage: NCViewerImageZoomDelegate {
         navigationItem.title = metadata.fileNameView
         currentMetadata = metadata
         currentViewerImageZoom = viewerImageZoom
-        viewerImageZoom.videoToolBar.hideToolBar()
         
         // PLAY VIDEO/AUDIO
         if (currentMetadata.classFile == NCCommunicationCommon.typeClassFile.video.rawValue || currentMetadata.classFile == NCCommunicationCommon.typeClassFile.audio.rawValue) {
@@ -581,13 +580,6 @@ extension NCViewerImage: NCViewerImageZoomDelegate {
         let isFolderEncrypted = CCUtility.isFolderEncrypted(metadata.serverUrl, e2eEncrypted: metadata.e2eEncrypted, account: metadata.account, urlBase: metadata.urlBase)
         let ext = CCUtility.getExtension(metadata.fileNameView)
         
-        // NO PREVIEW [RETRAY]
-//        if viewerImageZoom.noPreview {
-//            if let image = getImageMetadata(metadata) {
-//                viewerImageZoom.image = image
-//            }
-//        }
-        
         // DOWNLOAD FILE
         if ((metadata.classFile == NCCommunicationCommon.typeClassFile.image.rawValue && CCUtility.getAutomaticDownloadImage()) || (metadata.contentType == "image/heic" &&  metadata.hasPreview == false) || ext == "GIF" || ext == "SVG" || isFolderEncrypted) && metadata.session == "" && !CCUtility.fileProviderStorageExists(metadata.ocId, fileNameView: metadata.fileNameView) {
             NCOperationQueue.shared.download(metadata: metadata, selector: "")

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

@@ -70,7 +70,13 @@ class NCViewerImageZoom: UIViewController {
         view.addGestureRecognizer(doubleTapGestureRecognizer)
         
         if metadata.classFile == NCCommunicationCommon.typeClassFile.video.rawValue {
-            image = UIImage.init(named: "noPreviewVideo")!.image(color: .gray, size: view.frame.width)
+            if image == nil {
+                image = UIImage.init(named: "noPreviewVideo")!.image(color: .gray, size: view.frame.width)
+            }
+            // Show Video Toolbar
+            if !metadata.livePhoto {
+                videoToolBar.isHidden = false
+            }
         } else if metadata.classFile == NCCommunicationCommon.typeClassFile.audio.rawValue {
             if image == nil {
                 image = UIImage.init(named: "noPreviewAudio")!.image(color: .gray, size: view.frame.width)

+ 4 - 2
iOSClient/Viewer/NCViewerVideo/NCViewerVideo.swift

@@ -56,7 +56,7 @@ class NCViewerVideo: NSObject {
         self.imageView = imageView
         self.viewerVideoToolBar = viewerVideoToolBar
         self.metadata = metadata
-        
+                
         NCKTVHTTPCache.shared.startProxy(user: appDelegate.user, password: appDelegate.password, metadata: metadata)
         
         func initPlayer(url: URL) {
@@ -98,6 +98,8 @@ class NCViewerVideo: NSObject {
         if let url = NCKTVHTTPCache.shared.getVideoURL(metadata: metadata) {
             initPlayer(url: url)
         }
+        
+        //
     }
     
     func videoPlay() {
@@ -132,7 +134,7 @@ class NCViewerVideo: NSObject {
         
         if keyPath != nil && keyPath == "rate" {
             
-            self.viewerVideoToolBar?.setToolBarImage()
+            self.viewerVideoToolBar?.updateToolBar()
             
             if self.player?.rate == 1 {
                 

+ 16 - 11
iOSClient/Viewer/NCViewerVideo/NCViewerVideoToolBar.swift

@@ -79,7 +79,10 @@ class NCViewerVideoToolBar: UIView {
         labelOverallDuration.text = NCUtility.shared.stringFromTimeInterval(interval: 0)
         labelOverallDuration.textColor = .lightGray
         
-        setToolBarImage()
+        backButton.setImage(NCUtility.shared.loadImage(named: "gobackward.15", color: .lightGray), for: .normal)
+        playButton.setImage(NCUtility.shared.loadImage(named: "play.fill", color: .lightGray), for: .normal)
+        forwardButton.setImage(NCUtility.shared.loadImage(named: "goforward.15", color: .lightGray), for: .normal)
+        muteButton.setImage(NCUtility.shared.loadImage(named: "audioOff", color: .lightGray), for: .normal)
     }
     
     func setBarPlayer(player: AVPlayer?, metadata: tableMetadata, durationSeconds: Double) {
@@ -99,18 +102,17 @@ class NCViewerVideoToolBar: UIView {
             
             if self.player?.currentItem?.status == .readyToPlay {
                 if self.isHidden == false {
-                    self.updateOutlet()
+                    self.updateToolBar()
                 }
             }
         })
         
-        setToolBarImage()
-        showToolBar()
+        updateToolBar()
     }
     
     @objc public func hideToolBar() {
         
-        updateOutlet()
+        updateToolBar()
       
         UIView.animate(withDuration: 0.3, animations: {
             self.alpha = 0
@@ -121,7 +123,7 @@ class NCViewerVideoToolBar: UIView {
     
     @objc public func showToolBar() {
         
-        updateOutlet()
+        updateToolBar()
         
         UIView.animate(withDuration: 0.3, animations: {
             self.alpha = 1
@@ -130,29 +132,32 @@ class NCViewerVideoToolBar: UIView {
         })
     }
     
-    public func setToolBarImage() {
+    public func updateToolBar() {
 
         var namedPlay = "play.fill"
         if player?.rate == 1 { namedPlay = "pause.fill"}
                
+        playbackSlider.isEnabled = true
+        
         backButton.setImage(NCUtility.shared.loadImage(named: "gobackward.15", color: .white), for: .normal)
+        backButton.isEnabled = true
         
         if #available(iOS 13.0, *) {
             playButton.setImage(NCUtility.shared.loadImage(named: namedPlay, color: .white, symbolConfiguration: UIImage.SymbolConfiguration(pointSize: 30)), for: .normal)
         } else {
             playButton.setImage(NCUtility.shared.loadImage(named: namedPlay, color: .white), for: .normal)
         }
+        playButton.isEnabled = true
         
         forwardButton.setImage(NCUtility.shared.loadImage(named: "goforward.15", color: .white), for: .normal)
+        forwardButton.isEnabled = true
         
         if CCUtility.getAudioMute() {
             muteButton.setImage(NCUtility.shared.loadImage(named: "audioOff", color: .white), for: .normal)
         } else {
             muteButton.setImage(NCUtility.shared.loadImage(named: "audioOn", color: .white), for: .normal)
         }
-    }
-    
-    private func updateOutlet() {
+        muteButton.isEnabled = true
         
         if let duration = player?.currentItem?.asset.duration, let currentTime = player?.currentTime() {
             
@@ -222,7 +227,7 @@ class NCViewerVideoToolBar: UIView {
         
         CCUtility.setAudioMute(!mute)
         player?.isMuted = !mute
-        setToolBarImage()
+        updateToolBar()
     }
     
     @IBAction func forwardButtonSec(_ sender: Any) {