Sfoglia il codice sorgente

Coding

Signed-off-by: marinofaggiana <ios@nextcloud.com>
marinofaggiana 3 anni fa
parent
commit
839f400690

+ 4 - 4
iOSClient/Viewer/NCViewerMedia/NCPlayer/NCPlayer.swift

@@ -39,6 +39,8 @@ class NCPlayer: NSObject {
     internal var isProxy: Bool
     internal var isStartPlayer: Bool
     internal var isStartObserver: Bool
+    internal var subtitleUrls: [URL] = []
+    internal var currentSubtitle: URL?
 
     private weak var imageVideoContainer: imageVideoContainerView?
     private weak var detailView: NCViewerMediaDetailView?
@@ -50,7 +52,6 @@ class NCPlayer: NSObject {
     public var durationTime: CMTime = .zero
     public var metadata: tableMetadata
     public var videoLayer: AVPlayerLayer?
-    public var subtitleUrls: [URL] = []
 
     // MARK: - View Life Cycle
 
@@ -108,12 +109,11 @@ class NCPlayer: NSObject {
             return
         }
 
-        playerToolBar?.show()
-        setUpForSubtitle()
-
         print("Play URL: \(self.url)")
         player = AVPlayer(url: self.url)
+        playerToolBar?.show()
         playerToolBar?.setMetadata(self.metadata)
+        setUpForSubtitle()
 
         if metadata.livePhoto {
             player?.isMuted = false

+ 14 - 1
iOSClient/Viewer/NCViewerMedia/NCPlayer/NCPlayerToolBar.swift

@@ -54,6 +54,19 @@ class NCPlayerToolBar: UIView {
     private var playbackSliderEvent: sliderEventType = .ended
     private var timerAutoHide: Timer?
 
+    private var timerAutoHideSeconds: Double {
+        get {
+            if NCUtility.shared.isSimulatorOrTestFlight() { // for test
+                return 15
+            } else {
+                return 3.5
+            }
+        }
+    }
+
+
+// NCUtility.shared.isSimulatorOrTestFlight()
+
     var pictureInPictureController: AVPictureInPictureController?
     weak var viewerMediaPage: NCViewerMediaPage?
 
@@ -319,7 +332,7 @@ class NCPlayerToolBar: UIView {
     private func startTimerAutoHide() {
 
         timerAutoHide?.invalidate()
-        timerAutoHide = Timer.scheduledTimer(timeInterval: 3.5, target: self, selector: #selector(automaticHide), userInfo: nil, repeats: false)
+        timerAutoHide = Timer.scheduledTimer(timeInterval: timerAutoHideSeconds, target: self, selector: #selector(automaticHide), userInfo: nil, repeats: false)
     }
 
     private func reStartTimerAutoHide() {

+ 18 - 8
iOSClient/Viewer/NCViewerMedia/NCPlayer/NCSubtitle/NCSubtitlePlayer.swift

@@ -164,11 +164,11 @@ extension NCPlayer {
          }
     }
 
-    func open(fileFromLocal filePath: URL) {
+    func open(fileFromLocal url: URL) {
 
         subtitleLabel?.text = ""
 
-        self.loadText(filePath: filePath) { contents in
+        self.loadText(filePath: url) { contents in
             guard let contents = contents else {
                 return
             }
@@ -182,11 +182,13 @@ extension NCPlayer {
     @objc public func hideSubtitle() {
         self.subtitleLabel?.isHidden = true
         self.subtitleContainerView?.isHidden = true
+        self.currentSubtitle = nil
     }
 
-    @objc public func showSubtitle() {
+    @objc public func showSubtitle(url: URL) {
         self.subtitleLabel?.isHidden = false
         self.subtitleContainerView?.isHidden = false
+        self.currentSubtitle = url
     }
 
     private func show(subtitles string: String) {
@@ -358,14 +360,14 @@ extension NCPlayer {
                 titleSubtitle = NSLocalizedString("_subtitle_", comment: "")
             }
 
-            alert.addAction(UIAlertAction(title: titleSubtitle, style: .default, handler: { [self] _ in
+            let action = UIAlertAction(title: titleSubtitle, style: .default, handler: { [self] _ in
 
                 if NCUtilityFileSystem.shared.getFileSize(filePath: url.path) > 0 {
 
                     self.open(fileFromLocal: url)
                     if let viewController = viewController {
                         self.addSubtitlesTo(viewController, self.playerToolBar)
-                        self.showSubtitle()
+                        self.showSubtitle(url: url)
                     }
 
                 } else {
@@ -375,12 +377,20 @@ extension NCPlayer {
 
                     viewController?.present(alertError, animated: true, completion: nil)
                 }
-            }))
+            })
+            alert.addAction(action)
+            if currentSubtitle == url {
+                action.setValue(true, forKey: "checked")
+            }
         }
 
-        alert.addAction(UIAlertAction(title: NSLocalizedString("_disable_", comment: ""), style: .destructive, handler: { _ in
+        let disable = UIAlertAction(title: NSLocalizedString("_disable_", comment: ""), style: .default, handler: { _ in
             self.hideSubtitle()
-        }))
+        })
+        alert.addAction(disable)
+        if currentSubtitle == nil {
+            disable.setValue(true, forKey: "checked")
+        }
 
         alert.addAction(UIAlertAction(title: NSLocalizedString("_cancel_", comment: ""), style: .cancel, handler: { _ in
         }))