marinofaggiana 5 жил өмнө
parent
commit
e6fde38e1a

+ 3 - 3
iOSClient/Main/Menu/NCDetailNavigationController+Menu.swift

@@ -191,13 +191,13 @@ extension NCDetailNavigationController {
         }
         
         if metadata.typeFile == k_metadataTypeFile_image || metadata.typeFile == k_metadataTypeFile_video || metadata.typeFile == k_metadataTypeFile_audio {
-            if let metadataMov = NCUtility.sharedInstance.hasMOV(metadata: metadata) {
-                if CCUtility.fileProviderStorageSize(metadata.ocId, fileNameView: metadata.fileNameView) > 0 && CCUtility.fileProviderStorageSize(metadataMov.ocId, fileNameView: metadataMov.fileNameView) > 0 {
+            if let metadataLive = NCUtility.sharedInstance.isLivePhoto(metadata: metadata) {
+                if CCUtility.fileProviderStorageSize(metadata.ocId, fileNameView: metadata.fileNameView) > 0 && CCUtility.fileProviderStorageSize(metadataLive.ocId, fileNameView: metadataLive.fileNameView) > 0 {
                     actions.append(
                         NCMenuAction(title: NSLocalizedString("_livephoto_save_", comment: ""),
                             icon: CCGraphics.changeThemingColorImage(UIImage(named: "livePhoto"), width: 50, height: 50, color: NCBrandColor.sharedInstance.icon),
                             action: { menuAction in
-                                let userInfo: [String : Any] = ["metadata": metadata, "metadataMov": metadataMov]
+                                let userInfo: [String : Any] = ["metadata": metadata, "metadataMov": metadataLive]
                                 NotificationCenter.default.post(name: Notification.Name.init(rawValue: k_notificationCenter_menuSaveLivePhoto), object: nil, userInfo: userInfo)
                             }
                         )

+ 1 - 1
iOSClient/Main/NCDetailViewController.swift

@@ -820,7 +820,7 @@ extension NCDetailViewController: NCViewerImageViewControllerDelegate, NCViewerI
         var colorStatus: UIColor = UIColor.white.withAlphaComponent(0.8)
         if view.backgroundColor?.isLight() ?? true { colorStatus = UIColor.black.withAlphaComponent(0.8) }
                 
-        if NCUtility.sharedInstance.hasMOV(metadata: metadata) != nil {
+        if NCUtility.sharedInstance.isLivePhoto(metadata: metadata) != nil {
             viewerImageViewController.statusView.image = CCGraphics.changeThemingColorImage(UIImage.init(named: "livePhoto"), width: 100, height: 100, color: colorStatus)
         } else if metadata.typeFile == k_metadataTypeFile_video || metadata.typeFile == k_metadataTypeFile_audio {
             viewerImageViewController.statusView.image = CCGraphics.changeThemingColorImage(UIImage.init(named: "play"), width: 100, height: 100, color: colorStatus)

+ 2 - 2
iOSClient/Networking/NCNetworking.swift

@@ -238,8 +238,8 @@ import NCCommunication
             
         } else {
             // Verify Live Photo
-            if let metadataMov = NCUtility.sharedInstance.hasMOV(metadata: metadata) {
-                self.deleteMetadataPlain(metadataMov) { (errorCode, errorDescription) in
+            if let metadataLive = NCUtility.sharedInstance.isLivePhoto(metadata: metadata) {
+                self.deleteMetadataPlain(metadataLive) { (errorCode, errorDescription) in
                     if errorCode == 0 {
                         self.deleteMetadataPlain(metadata, completion: completion)
                     } else {

+ 14 - 4
iOSClient/Utility/NCUtility.swift

@@ -501,12 +501,22 @@ class NCUtility: NSObject {
         }
     }
     
-    @objc func hasMOV(metadata: tableMetadata) -> tableMetadata? {
+    @objc func isLivePhoto(metadata: tableMetadata) -> tableMetadata? {
         
-        if metadata.typeFile != k_metadataTypeFile_image { return nil }
+        if metadata.typeFile != k_metadataTypeFile_image && metadata.typeFile != k_metadataTypeFile_video  { return nil }
+        let ext = (metadata.fileNameView as NSString).pathExtension.lowercased()
         
-        let fileName = (metadata.fileNameView as NSString).deletingPathExtension + ".mov"
-        return NCManageDatabase.sharedInstance.getMetadata(predicate: NSPredicate(format: "account == %@ AND serverUrl == %@ AND fileNameView LIKE[c] %@", metadata.account, metadata.serverUrl, fileName))
+        if ext == "mov" {
+            
+            let fileNameJPG = (metadata.fileNameView as NSString).deletingPathExtension + ".jpg"
+            let fileNameHEIC = (metadata.fileNameView as NSString).deletingPathExtension + ".heic"
+            return NCManageDatabase.sharedInstance.getMetadata(predicate: NSPredicate(format: "account == %@ AND serverUrl == %@ AND (fileNameView LIKE[c] %@ OR fileNameView LIKE[c] %@)", metadata.account, metadata.serverUrl, fileNameJPG, fileNameHEIC))
+            
+        } else {
+            
+            let fileName = (metadata.fileNameView as NSString).deletingPathExtension + ".mov"
+            return NCManageDatabase.sharedInstance.getMetadata(predicate: NSPredicate(format: "account == %@ AND serverUrl == %@ AND fileNameView LIKE[c] %@", metadata.account, metadata.serverUrl, fileName))
+        }
     }
     
     @objc func pdfThumbnail(url: URL, width: CGFloat = 240) -> UIImage? {