Эх сурвалжийг харах

coding

Signed-off-by: Marino Faggiana <8616947+marinofaggiana@users.noreply.github.com>
Marino Faggiana 1 жил өмнө
parent
commit
742548347e

+ 54 - 1
iOSClient/Activity/NCActivityTableViewCell.swift

@@ -25,6 +25,7 @@ import Foundation
 import NextcloudKit
 import NextcloudKit
 import FloatingPanel
 import FloatingPanel
 import JGProgressHUD
 import JGProgressHUD
+import Queuer
 
 
 class NCActivityCollectionViewCell: UICollectionViewCell {
 class NCActivityCollectionViewCell: UICollectionViewCell {
 
 
@@ -194,7 +195,13 @@ extension NCActivityTableViewCell: UICollectionViewDataSource {
                     if FileManager.default.fileExists(atPath: fileNamePath), let image = UIImage(contentsOfFile: fileNamePath) {
                     if FileManager.default.fileExists(atPath: fileNamePath), let image = UIImage(contentsOfFile: fileNamePath) {
                         cell.imageView.image = image
                         cell.imageView.image = image
                     } else {
                     } else {
-                        NCOperationQueue.shared.downloadThumbnailActivity(fileNamePathOrFileId: activityPreview.source, fileNamePreviewLocalPath: fileNamePath, fileId: fileId, cell: cell, collectionView: collectionView)
+                        cell.imageView?.image = UIImage(named: "file_photo")
+                        cell.fileId = fileId
+                        if !FileManager.default.fileExists(atPath: fileNamePath) {
+                            if appDelegate.downloadThumbnailActivityQueue.operations.filter({ ($0 as? NCOperationDownloadThumbnailActivity)?.fileId == fileId }).isEmpty {
+                                appDelegate.downloadThumbnailActivityQueue.addOperation(NCOperationDownloadThumbnailActivity(fileNamePathOrFileId: activityPreview.source, fileNamePreviewLocalPath: fileNamePath, fileId: fileId, cell: cell, collectionView: collectionView))
+                            }
+                        }
                     }
                     }
                 }
                 }
             }
             }
@@ -219,3 +226,49 @@ extension NCActivityTableViewCell: UICollectionViewDelegateFlowLayout {
         return UIEdgeInsets(top: 0, left: 0, bottom: 10, right: 0)
         return UIEdgeInsets(top: 0, left: 0, bottom: 10, right: 0)
     }
     }
 }
 }
+
+class NCOperationDownloadThumbnailActivity: ConcurrentOperation {
+
+    var cell: NCActivityCollectionViewCell?
+    var collectionView: UICollectionView?
+    var fileNamePathOrFileId: String
+    var fileNamePreviewLocalPath: String
+    var fileId: String
+
+    init(fileNamePathOrFileId: String, fileNamePreviewLocalPath: String, fileId: String, cell: NCActivityCollectionViewCell?, collectionView: UICollectionView?) {
+        self.fileNamePathOrFileId = fileNamePathOrFileId
+        self.fileNamePreviewLocalPath = fileNamePreviewLocalPath
+        self.fileId = fileId
+        self.cell = cell
+        self.collectionView = collectionView
+    }
+
+    override func start() {
+
+        guard !isCancelled else { return self.finish() }
+
+        NextcloudKit.shared.downloadPreview(fileNamePathOrFileId: fileNamePathOrFileId,
+                                            fileNamePreviewLocalPath: fileNamePreviewLocalPath,
+                                            widthPreview: 0,
+                                            heightPreview: 0,
+                                            etag: nil,
+                                            useInternalEndpoint: false,
+                                            options: NKRequestOptions(queue: NextcloudKit.shared.nkCommonInstance.backgroundQueue)) { _, imagePreview, _, _, _, error in
+
+            if error == .success, let imagePreview = imagePreview {
+                DispatchQueue.main.async {
+                    if self.fileId == self.cell?.fileId, let imageView = self.cell?.imageView {
+                        UIView.transition(with: imageView,
+                                          duration: 0.75,
+                                          options: .transitionCrossDissolve,
+                                          animations: { imageView.image = imagePreview },
+                                          completion: nil)
+                    } else {
+                        self.collectionView?.reloadData()
+                    }
+                }
+            }
+            self.finish()
+        }
+    }
+}

+ 0 - 63
iOSClient/Networking/NCOperationQueue.swift

@@ -42,21 +42,6 @@ import JGProgressHUD
         appDelegate.downloadQueue.addOperation(NCOperationDownload(metadata: metadata, selector: selector))
         appDelegate.downloadQueue.addOperation(NCOperationDownload(metadata: metadata, selector: selector))
     }
     }
 
 
-    // MARK: - Download Thumbnail Activity
-
-    func downloadThumbnailActivity(fileNamePathOrFileId: String, fileNamePreviewLocalPath: String, fileId: String, cell: NCActivityCollectionViewCell, collectionView: UICollectionView?) {
-
-        cell.imageView?.image = UIImage(named: "file_photo")
-        cell.fileId = fileId
-
-        if !FileManager.default.fileExists(atPath: fileNamePreviewLocalPath) {
-            for case let operation as NCOperationDownloadThumbnailActivity in appDelegate.downloadThumbnailActivityQueue.operations where operation.fileId == fileId {
-                return
-            }
-            appDelegate.downloadThumbnailActivityQueue.addOperation(NCOperationDownloadThumbnailActivity(fileNamePathOrFileId: fileNamePathOrFileId, fileNamePreviewLocalPath: fileNamePreviewLocalPath, fileId: fileId, cell: cell, collectionView: collectionView))
-        }
-    }
-
     // MARK: - Download Avatar
     // MARK: - Download Avatar
 
 
     func downloadAvatar(user: String, dispalyName: String?, fileName: String, cell: NCCellProtocol, view: UIView?, cellImageView: UIImageView?) {
     func downloadAvatar(user: String, dispalyName: String?, fileName: String, cell: NCCellProtocol, view: UIView?, cellImageView: UIImageView?) {
@@ -119,54 +104,6 @@ class NCOperationDownload: ConcurrentOperation {
 
 
 // MARK: -
 // MARK: -
 
 
-class NCOperationDownloadThumbnailActivity: ConcurrentOperation {
-
-    var cell: NCActivityCollectionViewCell?
-    var collectionView: UICollectionView?
-    var fileNamePathOrFileId: String
-    var fileNamePreviewLocalPath: String
-    var fileId: String
-
-    init(fileNamePathOrFileId: String, fileNamePreviewLocalPath: String, fileId: String, cell: NCActivityCollectionViewCell?, collectionView: UICollectionView?) {
-        self.fileNamePathOrFileId = fileNamePathOrFileId
-        self.fileNamePreviewLocalPath = fileNamePreviewLocalPath
-        self.fileId = fileId
-        self.cell = cell
-        self.collectionView = collectionView
-    }
-
-    override func start() {
-
-        guard !isCancelled else { return self.finish() }
-
-        NextcloudKit.shared.downloadPreview(fileNamePathOrFileId: fileNamePathOrFileId,
-                                            fileNamePreviewLocalPath: fileNamePreviewLocalPath,
-                                            widthPreview: 0,
-                                            heightPreview: 0,
-                                            etag: nil,
-                                            useInternalEndpoint: false,
-                                            options: NKRequestOptions(queue: NextcloudKit.shared.nkCommonInstance.backgroundQueue)) { _, imagePreview, _, _, _, error in
-
-            if error == .success, let imagePreview = imagePreview {
-                DispatchQueue.main.async {
-                    if self.fileId == self.cell?.fileId, let imageView = self.cell?.imageView {
-                        UIView.transition(with: imageView,
-                                          duration: 0.75,
-                                          options: .transitionCrossDissolve,
-                                          animations: { imageView.image = imagePreview },
-                                          completion: nil)
-                    } else {
-                        self.collectionView?.reloadData()
-                    }
-                }
-            }
-            self.finish()
-        }
-    }
-}
-
-// MARK: -
-
 class NCOperationDownloadAvatar: ConcurrentOperation {
 class NCOperationDownloadAvatar: ConcurrentOperation {
 
 
     var user: String
     var user: String