Marino Faggiana 1 жил өмнө
parent
commit
063f0a2686

+ 27 - 0
iOSClient/Menu/NCMedia+Menu.swift

@@ -110,6 +110,33 @@ extension NCMedia {
                 )
             )
 
+            actions.append(
+                NCMenuAction(
+                    title: NSLocalizedString("_play_from_url_", comment: ""),
+                    icon: NCUtility.shared.loadImage(named: "network"),
+                    action: { _ in
+
+                        let alert = UIAlertController(title: NSLocalizedString("_valid_video_url_", comment: ""), message: nil, preferredStyle: .alert)
+                        alert.addAction(UIAlertAction(title: NSLocalizedString("_cancel_", comment: ""), style: .cancel, handler: nil))
+
+                        alert.addTextField(configurationHandler: { textField in
+                            textField.placeholder = "http://myserver.com/movie.mkv"
+                        })
+
+                        alert.addAction(UIAlertAction(title: NSLocalizedString("_ok_", comment: ""), style: .default, handler: { _ in
+                            guard let stringUrl = alert.textFields?.first?.text, !stringUrl.isEmpty, let url = URL(string: stringUrl) else { return }
+                            let fileName = url.lastPathComponent
+                            let metadata = NCManageDatabase.shared.createMetadata(account: self.appDelegate.account, user: self.appDelegate.user, userId: self.appDelegate.userId, fileName: fileName, fileNameView: fileName, ocId: NSUUID().uuidString, serverUrl: "", urlBase: self.appDelegate.urlBase, url: stringUrl, contentType: "")
+                            NCManageDatabase.shared.addMetadata(metadata)
+                            NCViewer.shared.view(viewController: self, metadata: metadata, metadatas: [metadata], imageIcon: nil)
+                        }))
+
+                        self.present(alert, animated: true)
+
+                    }
+                )
+            )
+
             actions.append(.seperator(order: 0))
 
             actions.append(

+ 5 - 1
iOSClient/Networking/NCNetworking.swift

@@ -1538,7 +1538,11 @@ class NCNetworking: NSObject, NKCommonDelegate {
     func getVideoUrl(metadata: tableMetadata, completition: @escaping (_ url: URL?) -> Void) {
 
         if !metadata.url.isEmpty {
-            completition(URL(fileURLWithPath: metadata.url))
+            if metadata.url.hasPrefix("/") {
+                completition(URL(fileURLWithPath: metadata.url))
+            } else {
+                completition(URL(string: metadata.url))
+            }
         } else if CCUtility.fileProviderStorageExists(metadata) {
             completition(URL(fileURLWithPath: CCUtility.getDirectoryProviderStorageOcId(metadata.ocId, fileNameView: metadata.fileNameView)))
         } else {

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

@@ -940,6 +940,8 @@
 "_modified_"                = "Modified";
 "_group_folders_"           = "Group folders";
 "_play_from_files_"         = "Play a movie from Files";
+"_play_from_url_"           = "Play a movie from url";
+"_valid_video_url_"         = "Insert a valid url";
 
 // Video
 "_select_trace_"            = "Select the trace";

+ 5 - 1
iOSClient/Viewer/NCViewerMedia/NCViewerMediaPage.swift

@@ -93,7 +93,11 @@ class NCViewerMediaPage: UIViewController {
     override func viewDidLoad() {
         super.viewDidLoad()
 
-        navigationItem.rightBarButtonItem = UIBarButtonItem(image: UIImage(named: "more")!.image(color: .label, size: 25), style: .plain, target: self, action: #selector(self.openMenuMore))
+        if metadatas.count == 1, let metadata = metadatas.first, !metadata.url.isEmpty {
+            // it's a video from URL
+        } else {
+            navigationItem.rightBarButtonItem = UIBarButtonItem(image: UIImage(named: "more")!.image(color: .label, size: 25), style: .plain, target: self, action: #selector(self.openMenuMore))
+        }
 
         singleTapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(didSingleTapWith(gestureRecognizer:)))
         panGestureRecognizer = UIPanGestureRecognizer(target: self, action: #selector(didPanWith(gestureRecognizer:)))