|
@@ -46,29 +46,6 @@ class NCGroupfolders: NCCollectionViewCommon {
|
|
|
super.viewWillAppear(animated)
|
|
|
|
|
|
navigationController?.setFileAppreance()
|
|
|
-
|
|
|
- NotificationCenter.default.addObserver(self, selector: #selector(readFile(_:)), name: NSNotification.Name(rawValue: NCGlobal.shared.notificationCenterOperationReadFile), object: nil)
|
|
|
- }
|
|
|
-
|
|
|
- override func viewWillDisappear(_ animated: Bool) {
|
|
|
- super.viewWillDisappear(animated)
|
|
|
-
|
|
|
- NotificationCenter.default.removeObserver(self, name: NSNotification.Name(rawValue: NCGlobal.shared.notificationCenterOperationReadFile), object: nil)
|
|
|
- }
|
|
|
-
|
|
|
- // MARK: - NotificationCenter
|
|
|
-
|
|
|
- @objc func readFile(_ notification: NSNotification) {
|
|
|
-
|
|
|
- guard let userInfo = notification.userInfo as NSDictionary?,
|
|
|
- let ocId = userInfo["ocId"] as? String,
|
|
|
- let metadata = NCManageDatabase.shared.getMetadataFromOcId(ocId)
|
|
|
- else {
|
|
|
- return
|
|
|
- }
|
|
|
-
|
|
|
- dataSource.addMetadata(metadata)
|
|
|
- self.collectionView?.reloadData()
|
|
|
}
|
|
|
|
|
|
// MARK: - DataSource + NC Endpoint
|
|
@@ -76,32 +53,30 @@ class NCGroupfolders: NCCollectionViewCommon {
|
|
|
override func reloadDataSource(forced: Bool = true) {
|
|
|
super.reloadDataSource()
|
|
|
|
|
|
- DispatchQueue.global().async {
|
|
|
+ var metadatas: [tableMetadata] = []
|
|
|
|
|
|
- var metadatas: [tableMetadata] = []
|
|
|
-
|
|
|
- if self.serverUrl.isEmpty {
|
|
|
- metadatas = NCManageDatabase.shared.getMetadatasFromGroupfolders(account: self.appDelegate.account, urlBase: self.appDelegate.urlBase, userId: self.appDelegate.userId)
|
|
|
- } else {
|
|
|
- metadatas = NCManageDatabase.shared.getMetadatas(predicate: NSPredicate(format: "account == %@ AND serverUrl == %@", self.appDelegate.account, self.serverUrl))
|
|
|
- }
|
|
|
+ if self.serverUrl.isEmpty {
|
|
|
+ metadatas = NCManageDatabase.shared.getMetadatasFromGroupfolders(account: self.appDelegate.account, urlBase: self.appDelegate.urlBase, userId: self.appDelegate.userId)
|
|
|
+ } else {
|
|
|
+ metadatas = NCManageDatabase.shared.getMetadatas(predicate: NSPredicate(format: "account == %@ AND serverUrl == %@", self.appDelegate.account, self.serverUrl))
|
|
|
+ }
|
|
|
|
|
|
- self.dataSource = NCDataSource(
|
|
|
- metadatas: metadatas,
|
|
|
- account: self.appDelegate.account,
|
|
|
- sort: self.layoutForView?.sort,
|
|
|
- ascending: self.layoutForView?.ascending,
|
|
|
- directoryOnTop: self.layoutForView?.directoryOnTop,
|
|
|
- favoriteOnTop: true,
|
|
|
- filterLivePhoto: true,
|
|
|
- groupByField: self.groupByField,
|
|
|
- providers: self.providers,
|
|
|
- searchResults: self.searchResults)
|
|
|
-
|
|
|
- DispatchQueue.main.async {
|
|
|
- self.refreshControl.endRefreshing()
|
|
|
- self.collectionView.reloadData()
|
|
|
- }
|
|
|
+ self.dataSource = NCDataSource(
|
|
|
+ metadatas: metadatas,
|
|
|
+ account: self.appDelegate.account,
|
|
|
+ sort: self.layoutForView?.sort,
|
|
|
+ ascending: self.layoutForView?.ascending,
|
|
|
+ directoryOnTop: self.layoutForView?.directoryOnTop,
|
|
|
+ favoriteOnTop: true,
|
|
|
+ filterLivePhoto: true,
|
|
|
+ groupByField: self.groupByField,
|
|
|
+ providers: self.providers,
|
|
|
+ searchResults: self.searchResults)
|
|
|
+
|
|
|
+ DispatchQueue.main.async {
|
|
|
+ self.isReloadDataSourceNetworkInProgress = false
|
|
|
+ self.refreshControl.endRefreshing()
|
|
|
+ self.collectionView.reloadData()
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -118,39 +93,36 @@ class NCGroupfolders: NCCollectionViewCommon {
|
|
|
|
|
|
NextcloudKit.shared.getGroupfolders(options: options) { account, results, _, error in
|
|
|
|
|
|
- DispatchQueue.main.async {
|
|
|
- self.refreshControl.endRefreshing()
|
|
|
- self.isReloadDataSourceNetworkInProgress = false
|
|
|
- }
|
|
|
-
|
|
|
if error == .success, let groupfolders = results {
|
|
|
+
|
|
|
NCManageDatabase.shared.addGroupfolders(account: account, groupfolders: groupfolders)
|
|
|
- for groupfolder in groupfolders {
|
|
|
- let mountPoint = groupfolder.mountPoint.hasPrefix("/") ? groupfolder.mountPoint : "/" + groupfolder.mountPoint
|
|
|
- let serverUrlFileName = homeServerUrl + mountPoint
|
|
|
- if NCManageDatabase.shared.getMetadataFromDirectory(account: self.appDelegate.account, serverUrl: serverUrlFileName) == nil {
|
|
|
- NCOperationQueue.shared.readFile(serverUrlFileName: serverUrlFileName)
|
|
|
+
|
|
|
+ Task {
|
|
|
+ for groupfolder in groupfolders {
|
|
|
+ let mountPoint = groupfolder.mountPoint.hasPrefix("/") ? groupfolder.mountPoint : "/" + groupfolder.mountPoint
|
|
|
+ let serverUrlFileName = homeServerUrl + mountPoint
|
|
|
+ if NCManageDatabase.shared.getMetadataFromDirectory(account: self.appDelegate.account, serverUrl: serverUrlFileName) == nil {
|
|
|
+ let results = await NextcloudKit.shared.readFileOrFolder(serverUrlFileName: serverUrlFileName, depth: "0", showHiddenFiles: CCUtility.getShowHiddenFiles())
|
|
|
+ if results.error == .success, let file = results.files.first {
|
|
|
+ let isDirectoryE2EE = NCUtility.shared.isDirectoryE2EE(file: file)
|
|
|
+ let metadata = NCManageDatabase.shared.convertFileToMetadata(file, isDirectoryE2EE: isDirectoryE2EE)
|
|
|
+ NCManageDatabase.shared.addMetadata(metadata)
|
|
|
+ NCManageDatabase.shared.addDirectory(encrypted: isDirectoryE2EE, favorite: metadata.favorite, ocId: metadata.ocId, fileId: metadata.fileId, etag: nil, permissions: metadata.permissions, serverUrl: serverUrlFileName, account: metadata.account)
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
+ self.reloadDataSource()
|
|
|
}
|
|
|
} else if error != .success {
|
|
|
+ self.reloadDataSource()
|
|
|
NCContentPresenter.shared.showError(error: error)
|
|
|
}
|
|
|
- self.reloadDataSource()
|
|
|
}
|
|
|
} else {
|
|
|
|
|
|
- networkReadFolder(forced: forced) { _, _, metadatasUpdate, metadatasDelete, _ in
|
|
|
-
|
|
|
- DispatchQueue.main.async {
|
|
|
- self.refreshControl.endRefreshing()
|
|
|
- self.isReloadDataSourceNetworkInProgress = false
|
|
|
+ networkReadFolder(forced: forced) { _, _, _, _, _ in
|
|
|
|
|
|
- if !(metadatasUpdate?.isEmpty ?? true) || !(metadatasDelete?.isEmpty ?? true) || forced {
|
|
|
- self.reloadDataSource()
|
|
|
- } else {
|
|
|
- self.collectionView?.reloadData()
|
|
|
- }
|
|
|
- }
|
|
|
+ self.reloadDataSource()
|
|
|
}
|
|
|
}
|
|
|
}
|