marinofaggiana 4 年之前
父节点
当前提交
f52f65d3e3

+ 18 - 11
iOSClient/Favorites/NCFavorite.swift

@@ -76,8 +76,8 @@ class NCFavorite: NCCollectionViewCommon  {
         collectionView.reloadData()
     }
     
-    override func reloadDataSourceNetwork() {
-        super.reloadDataSourceNetwork()
+    override func reloadDataSourceNetwork(forced: Bool = false) {
+        super.reloadDataSourceNetwork(forced: forced)
         
         if isSearching {
             networkSearch()
@@ -108,20 +108,27 @@ class NCFavorite: NCCollectionViewCommon  {
             
         } else {
             
-            NCNetworking.shared.readFolder(serverUrl: serverUrl, account: appDelegate.account) { (account, metadataFolder, metadatas, metadatasUpdate, metadatasLocalUpdate, errorCode, errorDescription) in
+            NCNetworking.shared.readFile(serverUrlFileName: serverUrl, account: appDelegate.account) { (account, metadata, errorCode, errorDescription) in
                 if errorCode == 0 {
-                    for metadata in metadatas ?? [] {
-                        if !metadata.directory && CCUtility.getFavoriteOffline() {
-                            let localFile = NCManageDatabase.sharedInstance.getTableLocalFile(predicate: NSPredicate(format: "ocId == %@", metadata.ocId))
-                            if localFile == nil || localFile?.etag != metadata.etag {
-                                NCOperationQueue.shared.download(metadata: metadata, selector: selectorDownloadFile, setFavorite: false)
+                    let directory = NCManageDatabase.sharedInstance.getTableDirectory(predicate: NSPredicate(format: "account == %@ AND serverUrl == %@", self.appDelegate.account, self.serverUrl))
+                    if directory?.etag != metadata?.etag {
+                        NCNetworking.shared.readFolder(serverUrl: self.serverUrl, account: self.appDelegate.account) { (account, metadataFolder, metadatas, metadatasUpdate, metadatasLocalUpdate, errorCode, errorDescription) in
+                            if errorCode == 0 {
+                                for metadata in metadatas ?? [] {
+                                    if !metadata.directory && CCUtility.getFavoriteOffline() {
+                                        let localFile = NCManageDatabase.sharedInstance.getTableLocalFile(predicate: NSPredicate(format: "ocId == %@", metadata.ocId))
+                                        if localFile == nil || localFile?.etag != metadata.etag {
+                                            NCOperationQueue.shared.download(metadata: metadata, selector: selectorDownloadFile, setFavorite: false)
+                                        }
+                                    }
+                                }
+                                self.metadataFolder = metadataFolder
                             }
+                            self.isReloadDataSourceNetworkInProgress = false
+                            self.reloadDataSource()
                         }
                     }
-                    self.metadataFolder = metadataFolder
                 }
-                self.isReloadDataSourceNetworkInProgress = false
-                self.reloadDataSource()
             }
         }
     }

+ 5 - 2
iOSClient/Main/Collection/NCCollectionViewCommon.swift

@@ -109,7 +109,7 @@ class NCCollectionViewCommon: UIViewController, UIGestureRecognizerDelegate, UIS
         collectionView.addSubview(refreshControl)
         refreshControl.tintColor = NCBrandColor.sharedInstance.brandText
         refreshControl.backgroundColor = NCBrandColor.sharedInstance.brandElement
-        refreshControl.addTarget(self, action: #selector(reloadDataSourceNetwork), for: .valueChanged)
+        refreshControl.addTarget(self, action: #selector(reloadDataSourceNetworkRefreshControl), for: .valueChanged)
         
         // empty Data Source
         self.collectionView.emptyDataSetDelegate = self
@@ -777,7 +777,10 @@ class NCCollectionViewCommon: UIViewController, UIGestureRecognizerDelegate, UIS
         richWorkspaceText = directory?.richWorkspace
     }
     @objc func reloadDataSource(_ notification: NSNotification) { }
-    @objc func reloadDataSourceNetwork() { }
+    @objc func reloadDataSourceNetwork(forced: Bool = false) { }
+    @objc func reloadDataSourceNetworkRefreshControl() {
+        reloadDataSourceNetwork(forced: true)
+    }
     @objc func networkSearch() {
         if literalSearch?.count ?? 0 > 1 {
         

+ 2 - 2
iOSClient/Offline/NCOffline.swift

@@ -90,8 +90,8 @@ class NCOffline: NCCollectionViewCommon  {
         collectionView.reloadData()
     }
        
-    override func reloadDataSourceNetwork() {
-        super.reloadDataSourceNetwork()
+    override func reloadDataSourceNetwork(forced: Bool = false) {
+        super.reloadDataSourceNetwork(forced: forced)
         
         if isSearching {
             networkSearch()

+ 2 - 2
iOSClient/Transfers/NCTransfers.swift

@@ -219,8 +219,8 @@ class NCTransfers: NCCollectionViewCommon  {
         collectionView.reloadData()
     }
     
-    override func reloadDataSourceNetwork() {
-        super.reloadDataSourceNetwork()
+    override func reloadDataSourceNetwork(forced: Bool = false) {
+        super.reloadDataSourceNetwork(forced: forced)
         
         reloadDataSource()
     }