marinofaggiana vor 4 Jahren
Ursprung
Commit
998ddb246b

+ 29 - 0
iOSClient/Database/NCManageDatabase.swift

@@ -2360,6 +2360,35 @@ class NCManageDatabase: NSObject {
         }
     }
     
+    @objc func isLivePhoto(metadata: tableMetadata) -> tableMetadata? {
+           
+        let realm = try! Realm()
+        realm.refresh()
+        
+        if metadata.typeFile != k_metadataTypeFile_image && metadata.typeFile != k_metadataTypeFile_video  { return nil }
+        if !CCUtility.getLivePhoto() {return nil }
+        let ext = (metadata.fileNameView as NSString).pathExtension.lowercased()
+        var predicate = NSPredicate()
+        
+        if ext == "mov" {
+               
+            let fileNameJPG = (metadata.fileNameView as NSString).deletingPathExtension + ".jpg"
+            let fileNameHEIC = (metadata.fileNameView as NSString).deletingPathExtension + ".heic"
+            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"
+            predicate = NSPredicate(format: "account == %@ AND serverUrl == %@ AND fileNameView LIKE[c] %@", metadata.account, metadata.serverUrl, fileName)
+        }
+        
+        guard let result = realm.objects(tableMetadata.self).filter(predicate).first else {
+            return nil
+        }
+        
+        return tableMetadata.init(value: result)
+    }
+    
     //MARK: -
     //MARK: Table Media
  

+ 1 - 1
iOSClient/Main/CCMain.m

@@ -2011,7 +2011,7 @@
     
     if (localFile) {
         [alertController addAction: [UIAlertAction actionWithTitle:NSLocalizedString(@"_remove_local_file_", nil) style:UIAlertActionStyleDestructive handler:^(UIAlertAction *action) {
-            tableMetadata *metadataLivePhoto = [[NCUtility sharedInstance] isLivePhotoWithMetadata:metadata];
+            tableMetadata *metadataLivePhoto = [[NCManageDatabase sharedInstance] isLivePhotoWithMetadata:metadata];
             
             [[NCManageDatabase sharedInstance] deleteLocalFileWithPredicate:[NSPredicate predicateWithFormat:@"ocId == %@", metadata.ocId]];
             [[NSFileManager defaultManager] removeItemAtPath:[CCUtility getDirectoryProviderStorageOcId:metadata.ocId] error:nil];

+ 1 - 1
iOSClient/Main/Menu/CCMain+Menu.swift

@@ -488,7 +488,7 @@ extension CCMain {
                                 
                                 NCNetworking.shared.download(metadata: metadata, selector: selectorLoadOffline) { (_) in }
                                 
-                                if let metadataLivePhoto = NCUtility.sharedInstance.isLivePhoto(metadata: metadata) {
+                                if let metadataLivePhoto = NCManageDatabase.sharedInstance.isLivePhoto(metadata: metadata) {
                                     NCNetworking.shared.download(metadata: metadataLivePhoto, selector: selectorLoadOffline) { (_) in }
                                 }
                                 

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

@@ -201,7 +201,7 @@ extension NCDetailNavigationController {
         }
         
         if metadata.typeFile == k_metadataTypeFile_image || metadata.typeFile == k_metadataTypeFile_video || metadata.typeFile == k_metadataTypeFile_audio {
-            if let metadataLive = NCUtility.sharedInstance.isLivePhoto(metadata: metadata) {
+            if let metadataLive = NCManageDatabase.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: ""),

+ 1 - 1
iOSClient/Main/NCDetailViewController.swift

@@ -847,7 +847,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.isLivePhoto(metadata: metadata) != nil {
+        if NCManageDatabase.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)

+ 5 - 5
iOSClient/Networking/NCNetworking.swift

@@ -709,7 +709,7 @@ import Alamofire
     @objc func deleteMetadata(_ metadata: tableMetadata, account: String, url: String, completion: @escaping (_ errorCode: Int, _ errorDescription: String)->()) {
                 
         let isDirectoryEncrypted = CCUtility.isFolderEncrypted(metadata.serverUrl, e2eEncrypted: metadata.e2eEncrypted, account: metadata.account)
-        let metadataLive = NCUtility.sharedInstance.isLivePhoto(metadata: metadata)
+        let metadataLive = NCManageDatabase.sharedInstance.isLivePhoto(metadata: metadata)
         
         if isDirectoryEncrypted {
             #if !EXTENSION
@@ -778,7 +778,7 @@ import Alamofire
 
     @objc func favoriteMetadata(_ metadata: tableMetadata, url: String, completion: @escaping (_ errorCode: Int, _ errorDescription: String)->()) {
         
-        if let metadataLive = NCUtility.sharedInstance.isLivePhoto(metadata: metadata) {
+        if let metadataLive = NCManageDatabase.sharedInstance.isLivePhoto(metadata: metadata) {
             favoriteMetadataPlain(metadataLive, url: url) { (errorCode, errorDescription) in
                 if errorCode == 0 {
                     self.favoriteMetadataPlain(metadata, url: url, completion: completion)
@@ -813,7 +813,7 @@ import Alamofire
     @objc func renameMetadata(_ metadata: tableMetadata, fileNameNew: String, url: String, viewController: UIViewController?, completion: @escaping (_ errorCode: Int, _ errorDescription: String?)->()) {
         
         let isDirectoryEncrypted = CCUtility.isFolderEncrypted(metadata.serverUrl, e2eEncrypted: metadata.e2eEncrypted, account: metadata.account)
-        let metadataLive = NCUtility.sharedInstance.isLivePhoto(metadata: metadata)
+        let metadataLive = NCManageDatabase.sharedInstance.isLivePhoto(metadata: metadata)
         let fileNameNewLive = (fileNameNew as NSString).deletingPathExtension + ".mov"
 
         if isDirectoryEncrypted {
@@ -907,7 +907,7 @@ import Alamofire
     
     @objc func moveMetadata(_ metadata: tableMetadata, serverUrlTo: String, overwrite: Bool, completion: @escaping (_ errorCode: Int, _ errorDescription: String?)->()) {
         
-        if let metadataLive = NCUtility.sharedInstance.isLivePhoto(metadata: metadata) {
+        if let metadataLive = NCManageDatabase.sharedInstance.isLivePhoto(metadata: metadata) {
             moveMetadataPlain(metadataLive, serverUrlTo: serverUrlTo, overwrite: overwrite) { (errorCode, errorDescription) in
                 if errorCode == 0 {
                     self.moveMetadataPlain(metadata, serverUrlTo: serverUrlTo, overwrite: overwrite, completion: completion)
@@ -958,7 +958,7 @@ import Alamofire
     
     @objc func copyMetadata(_ metadata: tableMetadata, serverUrlTo: String, overwrite: Bool, completion: @escaping (_ errorCode: Int, _ errorDescription: String?)->()) {
         
-        if let metadataLive = NCUtility.sharedInstance.isLivePhoto(metadata: metadata) {
+        if let metadataLive = NCManageDatabase.sharedInstance.isLivePhoto(metadata: metadata) {
             copyMetadataPlain(metadataLive, serverUrlTo: serverUrlTo, overwrite: overwrite) { (errorCode, errorDescription) in
                 if errorCode == 0 {
                     self.copyMetadataPlain(metadata, serverUrlTo: serverUrlTo, overwrite: overwrite, completion: completion)

+ 0 - 19
iOSClient/Utility/NCUtility.swift

@@ -453,25 +453,6 @@ class NCUtility: NSObject {
         }
     }
     
-    @objc func isLivePhoto(metadata: tableMetadata) -> tableMetadata? {
-        
-        if metadata.typeFile != k_metadataTypeFile_image && metadata.typeFile != k_metadataTypeFile_video  { return nil }
-        if !CCUtility.getLivePhoto() {return nil }
-        let ext = (metadata.fileNameView as NSString).pathExtension.lowercased()
-        
-        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? {
        
         guard let data = try? Data(contentsOf: url), let page = PDFDocument(data: data)?.page(at: 0) else {