marinofaggiana 4 سال پیش
والد
کامیت
3cb5d2abf9
2فایلهای تغییر یافته به همراه31 افزوده شده و 40 حذف شده
  1. 21 30
      iOSClient/Media/NCMedia.swift
  2. 10 10
      iOSClient/Networking/NCOperationQueue.swift

+ 21 - 30
iOSClient/Media/NCMedia.swift

@@ -118,7 +118,7 @@ class NCMedia: UIViewController, DropdownMenuDelegate, DZNEmptyDataSetSource, DZ
         super.viewDidAppear(animated)
         
         mediaCommandTitle()
-        removeDeletedFile()
+        readFiles()
         searchNewPhotoVideo()
     }
     
@@ -231,16 +231,11 @@ class NCMedia: UIViewController, DropdownMenuDelegate, DZNEmptyDataSetSource, DZ
                     icon: CCGraphics.changeThemingColorImage(UIImage(named: "trash"), width: 50, height: 50, color: .red),
                     action: { menuAction in
                         self.isEditMode = false
-                        // copy in arrayDeleteMetadata
                         for ocId in self.selectocId {
                             if let metadata = NCManageDatabase.sharedInstance.getMetadata(predicate: NSPredicate(format: "ocId == %@", ocId)) {
-                                self.appDelegate.arrayDeleteMetadata.add(metadata)
+                                NCNetworking.shared.deleteMetadata(metadata, account: self.appDelegate.activeAccount, url: self.appDelegate.activeUrl) { (errorCode, errorDescription) in }
                             }
                         }
-                        if let metadata = self.appDelegate.arrayDeleteMetadata.firstObject {
-                            self.appDelegate.arrayDeleteMetadata.removeObject(at: 0)
-                            NCNetworking.shared.deleteMetadata(metadata as! tableMetadata, account: self.appDelegate.activeAccount, url: self.appDelegate.activeUrl) { (errorCode, errorDescription) in }
-                        }
                     }
                 )
             )
@@ -271,25 +266,21 @@ class NCMedia: UIViewController, DropdownMenuDelegate, DZNEmptyDataSetSource, DZ
         if let userInfo = notification.userInfo as NSDictionary? {
             if let metadata = userInfo["metadata"] as? tableMetadata, let errorCode = userInfo["errorCode"] as? Int {
                 
-                DispatchQueue.global().async {
-                    let metadatas = self.metadatas.filter { $0.ocId != metadata.ocId }
-                    DispatchQueue.main.async {
-                        self.metadatas = metadatas
-                        
-                        if self.metadatas.count  > 0 {
-                            self.mediaCommandView?.isHidden = false
-                        } else {
-                            self.mediaCommandView?.isHidden = true
-                        }
-                        self.reloadDataThenPerform {
-                            self.mediaCommandTitle()
-                        }
-                        
-                        if errorCode == 0 && (metadata.typeFile == k_metadataTypeFile_image || metadata.typeFile == k_metadataTypeFile_video || metadata.typeFile == k_metadataTypeFile_audio) {
-                            let userInfo: [String : Any] = ["metadata": metadata, "type": "delete"]
-                            NotificationCenter.default.post(name: Notification.Name.init(rawValue: k_notificationCenter_synchronizationMedia), object: nil, userInfo: userInfo)
-                        }
-                    }
+                let metadatas = self.metadatas.filter { $0.ocId != metadata.ocId }
+                self.metadatas = metadatas
+                    
+                if self.metadatas.count  > 0 {
+                    self.mediaCommandView?.isHidden = false
+                } else {
+                    self.mediaCommandView?.isHidden = true
+                }
+                self.reloadDataThenPerform {
+                    self.mediaCommandTitle()
+                }
+                    
+                if errorCode == 0 && (metadata.typeFile == k_metadataTypeFile_image || metadata.typeFile == k_metadataTypeFile_video || metadata.typeFile == k_metadataTypeFile_audio) {
+                    let userInfo: [String : Any] = ["metadata": metadata, "type": "delete"]
+                    NotificationCenter.default.post(name: Notification.Name.init(rawValue: k_notificationCenter_synchronizationMedia), object: nil, userInfo: userInfo)
                 }
             }
         }
@@ -638,12 +629,12 @@ extension NCMedia {
         }
     }
     
-    private func removeDeletedFile() {
+    private func readFiles() {
         guard let collectionView = self.collectionView else { return }
         DispatchQueue.main.asyncAfter(deadline: .now() + 0.1) {
             for indexPath in collectionView.indexPathsForVisibleItems {
                 let metadata = self.metadatas[indexPath.row]
-                NCOperationQueue.shared.removeDeletedFile(metadata: metadata)
+                NCOperationQueue.shared.readFileForMedia(metadata: metadata)
             }
         }
     }
@@ -660,7 +651,7 @@ extension NCMedia: UIScrollViewDelegate {
     
     func scrollViewDidEndDragging(_ scrollView: UIScrollView, willDecelerate decelerate: Bool) {
         if !decelerate {
-            self.removeDeletedFile()
+            self.readFiles()
             
             if (scrollView.contentOffset.y >= (scrollView.contentSize.height - scrollView.frame.size.height)) {
                 searchOldPhotoVideo()
@@ -669,7 +660,7 @@ extension NCMedia: UIScrollViewDelegate {
     }
     
     func scrollViewDidEndDecelerating(_ scrollView: UIScrollView) {
-        self.removeDeletedFile()
+        self.readFiles()
         
         if (scrollView.contentOffset.y >= (scrollView.contentSize.height - scrollView.frame.size.height)) {
             searchOldPhotoVideo()

+ 10 - 10
iOSClient/Networking/NCOperationQueue.swift

@@ -35,13 +35,13 @@ import NCCommunication
     private var downloadQueue = Queuer(name: "downloadQueue", maxConcurrentOperationCount: 5, qualityOfService: .default)
     private let readFolderSyncQueue = Queuer(name: "readFolderSyncQueue", maxConcurrentOperationCount: 1, qualityOfService: .default)
     private let downloadThumbnailQueue = Queuer(name: "downloadThumbnailQueue", maxConcurrentOperationCount: 10, qualityOfService: .default)
-    private let removeDeletedFileQueue = Queuer(name: "removeDeletedFileQueue", maxConcurrentOperationCount: 10, qualityOfService: .default)
+    private let readFileForMediaQueue = Queuer(name: "readFileForMediaQueue", maxConcurrentOperationCount: 10, qualityOfService: .default)
 
     @objc func cancelAllQueue() {
         downloadCancelAll()
         readFolderSyncCancelAll()
         downloadThumbnailCancelAll()
-        removeDeletedFileCancelAll()
+        readFileForMediaCancelAll()
     }
     
     // Download file
@@ -77,16 +77,16 @@ import NCCommunication
         downloadThumbnailQueue.cancelAll()
     }
     
-    // Remove deleted file
-    @objc func removeDeletedFile(metadata: tableMetadata) {
+    // Verify exists yet file
+    @objc func readFileForMedia(metadata: tableMetadata) {
         
-        for operation in  removeDeletedFileQueue.operations {
-            if (operation as! NCOperationRemoveDeletedFileQueue).metadata.ocId == metadata.ocId { return }
+        for operation in  readFileForMediaQueue.operations {
+            if (operation as! NCOperationReadFileForMediaQueue).metadata.ocId == metadata.ocId { return }
         }
-        removeDeletedFileQueue.addOperation(NCOperationRemoveDeletedFileQueue.init(metadata: metadata))
+        readFileForMediaQueue.addOperation(NCOperationReadFileForMediaQueue.init(metadata: metadata))
     }
-    @objc func removeDeletedFileCancelAll() {
-        removeDeletedFileQueue.cancelAll()
+    @objc func readFileForMediaCancelAll() {
+        readFileForMediaQueue.cancelAll()
     }
 }
 
@@ -212,7 +212,7 @@ class NCOperationDownloadThumbnail: ConcurrentOperation {
 
 //MARK: -
 
-class NCOperationRemoveDeletedFileQueue: ConcurrentOperation {
+class NCOperationReadFileForMediaQueue: ConcurrentOperation {
    
     var metadata: tableMetadata