marinofaggiana 4 年之前
父節點
當前提交
6fdf4d2abf
共有 2 個文件被更改,包括 32 次插入1 次删除
  1. 1 1
      Cartfile.resolved
  2. 31 0
      iOSClient/Networking/NCNetworking.swift

+ 1 - 1
Cartfile.resolved

@@ -19,7 +19,7 @@ github "malcommac/SwiftRichString" "3.7.2"
 github "marinofaggiana/KTVHTTPCache" "2.0.2"
 github "marinofaggiana/TOPasscodeViewController" "0.0.7"
 github "marinofaggiana/XLForm" "eb9381ad8129f60402bf412250fb31b95a628a08"
-github "nextcloud/ios-communication-library" "22a1ecd469131321a9c3d77b79a60bc5de393468"
+github "nextcloud/ios-communication-library" "197f5cd596749108021fe72eddbefb35f8ab7d5e"
 github "realm/realm-cocoa" "v5.2.0"
 github "rechsteiner/Parchment" "v1.7.0"
 github "scenee/FloatingPanel" "v1.7.5"

+ 31 - 0
iOSClient/Networking/NCNetworking.swift

@@ -789,6 +789,37 @@ import Alamofire
         }
     }
     
+    @objc func listingFavoritescompletion(completion: @escaping (_ account: String, _ metadatas: [tableMetadata]?, _ errorCode: Int, _ errorDescription: String)->()) {
+        NCCommunication.shared.listingFavorites(showHiddenFiles: CCUtility.getShowHiddenFiles()) { (account, files, errorCode, errorDescription) in
+            
+            if errorCode == 0 {
+                NCManageDatabase.sharedInstance.convertNCCommunicationFilesToMetadatas(files, useMetadataFolder: false, account: account) { (_, _, metadatas) in
+                    // remove
+                    if let metadatasFavorite = NCManageDatabase.sharedInstance.getMetadatas(predicate: NSPredicate(format: "account == %@ AND favorite == true", account), freeze: true) {
+                        for metadata in metadatasFavorite {
+                            if metadatas.firstIndex(where: { $0.ocId == metadata.ocId }) == nil {
+                                NCManageDatabase.sharedInstance.setMetadataFavorite(ocId: metadata.ocId, favorite: false)
+                            }
+                        }
+                    }
+                    #if !EXTENSION
+                    for metadata in metadatas {
+                        if CCUtility.getFavoriteOffline() {
+                            NCManageDatabase.sharedInstance.setMetadataFavorite(ocId: metadata.ocId, favorite: true)
+                            NCOperationQueue.shared.synchronizationMetadata(metadata, selector: selectorDownloadSynchronize)
+                        } else {
+                            NCOperationQueue.shared.synchronizationMetadata(metadata, selector: selectorSynchronize)
+                        }
+                    }
+                    #endif
+                    completion(account, metadatas, errorCode, errorDescription)
+                }
+            } else {
+                completion(account, nil, errorCode, errorDescription)
+            }
+        }
+    }
+    
     //MARK: - WebDav Rename
 
     @objc func renameMetadata(_ metadata: tableMetadata, fileNameNew: String, url: String, viewController: UIViewController?, completion: @escaping (_ errorCode: Int, _ errorDescription: String?)->()) {