Explorar el Código

coding

Signed-off-by: marinofaggiana <ios@nextcloud.com>
marinofaggiana hace 2 años
padre
commit
d3d6cf798c

+ 2 - 2
Share/NCShareExtension+Files.swift

@@ -36,9 +36,9 @@ extension NCShareExtension {
             groupByField = "classFile"
         }
 
-        let metadatasSource = NCManageDatabase.shared.getMetadatas(predicate: NSPredicate(format: "account == %@ AND serverUrl == %@ AND directory == true", activeAccount.account, serverUrl))
+        let metadatas = NCManageDatabase.shared.getMetadatas(predicate: NSPredicate(format: "account == %@ AND serverUrl == %@ AND directory == true", activeAccount.account, serverUrl))
         self.dataSource = NCDataSource(
-            metadatasSource: metadatasSource,
+            metadatas: metadatas,
             account: activeAccount.account,
             sort: layoutForView?.sort,
             ascending: layoutForView?.ascending,

+ 22 - 22
iOSClient/Data/NCDataSource.swift

@@ -26,7 +26,7 @@ import NCCommunication
 
 class NCDataSource: NSObject {
 
-    public var metadatasSource: [tableMetadata] = []
+    public var metadatas: [tableMetadata] = []
     public var metadatasForSection: [NCMetadataForSection] = []
 
     public var directory: tableDirectory?
@@ -48,10 +48,10 @@ class NCDataSource: NSObject {
         super.init()
     }
 
-    init(metadatasSource: [tableMetadata], account: String, directory: tableDirectory? = nil, sort: String? = "none", ascending: Bool? = false, directoryOnTop: Bool? = true, favoriteOnTop: Bool? = true, filterLivePhoto: Bool? = true, groupByField: String = "name", providers: [NCCSearchProvider]? = nil, searchResults: [NCCSearchResult]? = nil) {
+    init(metadatas: [tableMetadata], account: String, directory: tableDirectory? = nil, sort: String? = "none", ascending: Bool? = false, directoryOnTop: Bool? = true, favoriteOnTop: Bool? = true, filterLivePhoto: Bool? = true, groupByField: String = "name", providers: [NCCSearchProvider]? = nil, searchResults: [NCCSearchResult]? = nil) {
         super.init()
 
-        self.metadatasSource = metadatasSource
+        self.metadatas = metadatas
         self.directory = directory
         self.shares = NCManageDatabase.shared.getTableShares(account: account)
         self.localFiles = NCManageDatabase.shared.getTableLocalFile(account: account)
@@ -72,7 +72,7 @@ class NCDataSource: NSObject {
 
     func clearDataSource() {
 
-        self.metadatasSource.removeAll()
+        self.metadatas.removeAll()
         self.metadatasForSection.removeAll()
         self.directory = nil
         self.sectionsValue.removeAll()
@@ -89,7 +89,7 @@ class NCDataSource: NSObject {
 
     func addSection(metadatas: [tableMetadata], searchResult: NCCSearchResult?) {
 
-        self.metadatasSource.append(contentsOf: metadatas)
+        self.metadatas.append(contentsOf: metadatas)
 
         if let searchResult = searchResult {
             self.searchResults?.append(searchResult)
@@ -101,7 +101,7 @@ class NCDataSource: NSObject {
     internal func createSections() {
 
         // get all Section
-        for metadata in metadatasSource {
+        for metadata in self.metadatas {
             // skipped livePhoto
             if filterLivePhoto && metadata.livePhoto && metadata.ext == "mov" {
                 continue
@@ -163,7 +163,7 @@ class NCDataSource: NSObject {
         if let providers = self.providers, !providers.isEmpty, let searchResults = self.searchResults {
             searchResult = searchResults.filter({ $0.name == sectionValue}).first
         }
-        let metadatas = metadatasSource.filter({ getSectionValue(metadata: $0) == sectionValue})
+        let metadatas = self.metadatas.filter({ getSectionValue(metadata: $0) == sectionValue})
         let metadataForSection = NCMetadataForSection.init(sectionValue: sectionValue,
                                                             metadatas: metadatas,
                                                             shares: self.shares,
@@ -195,7 +195,7 @@ class NCDataSource: NSObject {
         guard let sectionIndex =  getSectionIndex(metadataForSection.sectionValue) else { return [] }
         var indexPaths: [IndexPath] = []
 
-        self.metadatasSource.append(contentsOf: metadatas)
+        self.metadatas.append(contentsOf: metadatas)
         metadataForSection.metadatas.append(contentsOf: metadatas)
         metadataForSection.lastSearchResult = lastSearchResult
         metadataForSection.createMetadatas()
@@ -216,10 +216,10 @@ class NCDataSource: NSObject {
         let sectionValue = getSectionValue(metadata: metadata)
 
         // ADD metadatasSource
-        if let rowIndex = self.metadatasSource.firstIndex(where: {$0.fileNameView == metadata.fileNameView || $0.ocId == metadata.ocId}) {
-            self.metadatasSource[rowIndex] = metadata
+        if let rowIndex = self.metadatas.firstIndex(where: {$0.fileNameView == metadata.fileNameView || $0.ocId == metadata.ocId}) {
+            self.metadatas[rowIndex] = metadata
         } else {
-            self.metadatasSource.append(metadata)
+            self.metadatas.append(metadata)
         }
 
         // ADD metadataForSection
@@ -275,8 +275,8 @@ class NCDataSource: NSObject {
         } else { return (nil, false) }
 
         // DELETE metadatasSource (IMPORTANT LAST)
-        if let rowIndex = self.metadatasSource.firstIndex(where: {$0.ocId == ocId}) {
-            self.metadatasSource.remove(at: rowIndex)
+        if let rowIndex = self.metadatas.firstIndex(where: {$0.ocId == ocId}) {
+            self.metadatas.remove(at: rowIndex)
         }
 
         return (indexPathReturn, self.isSameNumbersOfSections(numberOfSections: numberOfSections))
@@ -302,8 +302,8 @@ class NCDataSource: NSObject {
         }
 
         // UPDATE metadatasSource (IMPORTANT LAST)
-        if let rowIndex = self.metadatasSource.firstIndex(where: {$0.ocId == ocIdSearch}) {
-            self.metadatasSource[rowIndex] = metadata
+        if let rowIndex = self.metadatas.firstIndex(where: {$0.ocId == ocIdSearch}) {
+            self.metadatas[rowIndex] = metadata
         }
 
         let result = self.getIndexPathMetadata(ocId: ocId)
@@ -313,7 +313,7 @@ class NCDataSource: NSObject {
     // MARK: -
 
     func getIndexPathMetadata(ocId: String) -> (indexPath: IndexPath?, metadataForSection: NCMetadataForSection?) {
-        guard let metadata = metadatasSource.filter({ $0.ocId == ocId}).first else { return (nil, nil) }
+        guard let metadata = self.metadatas.filter({ $0.ocId == ocId}).first else { return (nil, nil) }
         let sectionValue = getSectionValue(metadata: metadata)
         guard let sectionIndex = getSectionIndex(sectionValue), let metadataForSection = getMetadataForSection(sectionValue), let rowIndex = metadataForSection.metadatas.firstIndex(where: {$0.ocId == ocId}) else { return (nil, nil) }
         return (IndexPath(row: rowIndex, section: sectionIndex), metadataForSection)
@@ -330,7 +330,7 @@ class NCDataSource: NSObject {
     }
     
     func numberOfItemsInSection(_ section: Int) -> Int {
-        guard self.sectionsValue.count > 0 && self.metadatasSource.count > 0, let metadataForSection = getMetadataForSection(section) else { return 0}
+        guard self.sectionsValue.count > 0 && self.metadatas.count > 0, let metadataForSection = getMetadataForSection(section) else { return 0}
         return metadataForSection.metadatas.count
     }
 
@@ -413,7 +413,7 @@ class NCMetadataForSection: NSObject {
     private var favoriteOnTop: Bool
     private var filterLivePhoto: Bool
 
-    private var metadatasSourceSorted: [tableMetadata] = []
+    private var metadatasSorted: [tableMetadata] = []
     private var metadatasFavoriteDirectory: [tableMetadata] = []
     private var metadatasFavoriteFile: [tableMetadata] = []
     private var metadatasDirectory: [tableMetadata] = []
@@ -447,7 +447,7 @@ class NCMetadataForSection: NSObject {
 
         // Clear
         //
-        metadatasSourceSorted.removeAll()
+        metadatasSorted.removeAll()
         metadatasFavoriteDirectory.removeAll()
         metadatasFavoriteFile.removeAll()
         metadatasDirectory.removeAll()
@@ -462,7 +462,7 @@ class NCMetadataForSection: NSObject {
         // Metadata order
         //
         if sort != "none" && sort != "" {
-            metadatasSourceSorted = metadatas.sorted {
+            metadatasSorted = metadatas.sorted {
 
                 switch sort {
                 case "date":
@@ -486,12 +486,12 @@ class NCMetadataForSection: NSObject {
                 }
             }
         } else {
-            metadatasSourceSorted = metadatas
+            metadatasSorted = metadatas
         }
 
         // Initialize datasource
         //
-        for metadata in metadatasSourceSorted {
+        for metadata in metadatasSorted {
 
             // skipped the root file
             if metadata.fileName == "." || metadata.serverUrl == ".." {

+ 8 - 7
iOSClient/Favorites/NCFavorite.swift

@@ -47,15 +47,16 @@ class NCFavorite: NCCollectionViewCommon {
     override func reloadDataSource(forced: Bool = true) {
         super.reloadDataSource()
 
-        if !self.isSearching {
-            if self.serverUrl.isEmpty {
-                self.metadatasSource = NCManageDatabase.shared.getMetadatas(predicate: NSPredicate(format: "account == %@ AND favorite == true", self.appDelegate.account))
-            } else {
-                self.metadatasSource = NCManageDatabase.shared.getMetadatas(predicate: NSPredicate(format: "account == %@ AND serverUrl == %@", self.appDelegate.account, self.serverUrl))
-            }
+        var metadatas: [tableMetadata] = []
+
+        if self.serverUrl.isEmpty {
+            metadatas = NCManageDatabase.shared.getMetadatas(predicate: NSPredicate(format: "account == %@ AND favorite == true", self.appDelegate.account))
+        } else {
+            metadatas = NCManageDatabase.shared.getMetadatas(predicate: NSPredicate(format: "account == %@ AND serverUrl == %@", self.appDelegate.account, self.serverUrl))
         }
 
-        self.dataSource = NCDataSource(metadatasSource: self.metadatasSource,
+
+        self.dataSource = NCDataSource(metadatas: metadatas,
                                        account: self.appDelegate.account,
                                        sort: self.layoutForView?.sort,
                                        ascending: self.layoutForView?.ascending,

+ 5 - 6
iOSClient/FileViewInFolder/NCFileViewInFolder.swift

@@ -84,14 +84,13 @@ class NCFileViewInFolder: NCCollectionViewCommon {
 
         DispatchQueue.global().async {
 
-            if !self.isSearching {
-                self.metadatasSource = NCManageDatabase.shared.getMetadatas(predicate: NSPredicate(format: "account == %@ AND serverUrl == %@", self.appDelegate.account, self.serverUrl))
-                if self.metadataFolder == nil {
-                    self.metadataFolder = NCManageDatabase.shared.getMetadataFolder(account: self.appDelegate.account, urlBase: self.appDelegate.urlBase, serverUrl: self.serverUrl)
-                }
+            let metadatas = NCManageDatabase.shared.getMetadatas(predicate: NSPredicate(format: "account == %@ AND serverUrl == %@", self.appDelegate.account, self.serverUrl))
+            if self.metadataFolder == nil {
+                self.metadataFolder = NCManageDatabase.shared.getMetadataFolder(account: self.appDelegate.account, urlBase: self.appDelegate.urlBase, serverUrl: self.serverUrl)
             }
 
-            self.dataSource = NCDataSource(metadatasSource: self.metadatasSource,
+
+            self.dataSource = NCDataSource(metadatas: metadatas,
                                            account: self.appDelegate.account,
                                            sort: self.layoutForView?.sort,
                                            ascending: self.layoutForView?.ascending,

+ 1 - 1
iOSClient/Files/NCFiles.swift

@@ -92,7 +92,7 @@ class NCFiles: NCCollectionViewCommon {
         }
 
         dataSource = NCDataSource(
-            metadatasSource: metadatas,
+            metadatas: metadatas,
             account: self.appDelegate.account,
             directory: directory,
             sort: self.layoutForView?.sort,

+ 7 - 12
iOSClient/Main/Collection Common/NCCollectionViewCommon.swift

@@ -39,7 +39,6 @@ class NCCollectionViewCommon: UIViewController, UIGestureRecognizerDelegate, UIS
     internal var isEncryptedFolder = false
     internal var isEditMode = false
     internal var selectOcId: [String] = []
-    internal var metadatasSource: [tableMetadata] = []
     internal var metadataFolder: tableMetadata?
     internal var dataSource = NCDataSource()
     internal var richWorkspaceText: String?
@@ -749,7 +748,6 @@ class NCCollectionViewCommon: UIViewController, UIGestureRecognizerDelegate, UIS
         self.isSearching = true
 
         self.providers?.removeAll()
-        self.metadatasSource.removeAll()
         self.dataSource.clearDataSource()
 
         self.collectionView.reloadData()
@@ -1038,7 +1036,6 @@ class NCCollectionViewCommon: UIViewController, UIGestureRecognizerDelegate, UIS
         }
 
         isReloadDataSourceNetworkInProgress = true
-        self.metadatasSource.removeAll()
         self.dataSource.clearDataSource()
         self.refreshControl.beginRefreshing()
         self.collectionView.reloadData()
@@ -1049,7 +1046,7 @@ class NCCollectionViewCommon: UIViewController, UIGestureRecognizerDelegate, UIS
                 self.providers = allProviders
                 self.searchResults = []
                 self.dataSource = NCDataSource(
-                    metadatasSource: [] ,
+                    metadatas: [] ,
                     account: self.appDelegate.account,
                     sort: self.layoutForView?.sort,
                     ascending: self.layoutForView?.ascending,
@@ -1068,11 +1065,13 @@ class NCCollectionViewCommon: UIViewController, UIGestureRecognizerDelegate, UIS
             }
         } else {
             NCNetworking.shared.searchFiles(urlBase: appDelegate, literal: literalSearch) { metadatas, errorCode, errorDescription in
-                if  self.isSearching, errorCode == 0, let metadatas = metadatas {
-                    self.metadatasSource = metadatas
+                DispatchQueue.main.async {
+                    self.refreshControl.endRefreshing()
+                    self.collectionView.reloadData()
                 }
+                guard let metadatas = metadatas, errorCode == 0, self.isSearching else { return }
                 self.dataSource = NCDataSource(
-                    metadatasSource: self.metadatasSource,
+                    metadatas: metadatas,
                     account: self.appDelegate.account,
                     sort: self.layoutForView?.sort,
                     ascending: self.layoutForView?.ascending,
@@ -1083,10 +1082,6 @@ class NCCollectionViewCommon: UIViewController, UIGestureRecognizerDelegate, UIS
                     providers: self.providers,
                     searchResults: self.searchResults)
                 self.isReloadDataSourceNetworkInProgress = false
-                DispatchQueue.main.async {
-                    self.refreshControl.endRefreshing()
-                    self.collectionView.reloadData()
-                }
             }
         }
     }
@@ -1107,7 +1102,7 @@ class NCCollectionViewCommon: UIViewController, UIGestureRecognizerDelegate, UIS
             metadataForSection.unifiedSearchInProgress = false
             guard let searchResult = searchResult, let metadatas = metadatas else { return }
 
-            self.metadatasSource.append(contentsOf: metadatas)
+            //self.metadatasSource.append(contentsOf: metadatas)
             let indexPaths = self.dataSource.appendMetadatasToSection(metadatas, metadataForSection: metadataForSection, lastSearchResult: searchResult)
 
             DispatchQueue.main.async {

+ 3 - 3
iOSClient/Networking/NCOperationQueue.swift

@@ -569,9 +569,9 @@ class NCOperationDataSource: ConcurrentOperation {
             self.finish()
         } else {
             self.collectionViewCommon.dataSource.addSection(metadatas: metadatas, searchResult: searchResult)
-            for metadata in self.metadatas {
-                self.collectionViewCommon.metadatasSource.append(metadata)
-            }
+//            for metadata in self.metadatas {
+//                self.collectionViewCommon.metadatasSource.append(metadata)
+//            }
             self.collectionViewCommon.searchResults?.append(self.searchResult)
             reloadDataThenPerform {
                 self.finish()

+ 14 - 15
iOSClient/Offline/NCOffline.swift

@@ -48,28 +48,27 @@ class NCOffline: NCCollectionViewCommon {
         super.reloadDataSource()
 
         var ocIds: [String] = []
+        var metadatas: [tableMetadata] = []
 
-        if !self.isSearching {
-            if self.serverUrl.isEmpty {
-                if let directories = NCManageDatabase.shared.getTablesDirectory(predicate: NSPredicate(format: "account == %@ AND offline == true", self.appDelegate.account), sorted: "serverUrl", ascending: true) {
-                    for directory: tableDirectory in directories {
-                        ocIds.append(directory.ocId)
-                    }
-                }
-
-                let files = NCManageDatabase.shared.getTableLocalFiles(predicate: NSPredicate(format: "account == %@ AND offline == true", self.appDelegate.account), sorted: "fileName", ascending: true)
-                for file in files {
-                    ocIds.append(file.ocId)
+        if self.serverUrl.isEmpty {
+            if let directories = NCManageDatabase.shared.getTablesDirectory(predicate: NSPredicate(format: "account == %@ AND offline == true", self.appDelegate.account), sorted: "serverUrl", ascending: true) {
+                for directory: tableDirectory in directories {
+                    ocIds.append(directory.ocId)
                 }
+            }
 
-                self.metadatasSource = NCManageDatabase.shared.getMetadatas(predicate: NSPredicate(format: "account == %@ AND ocId IN %@", self.appDelegate.account, ocIds))
-            } else {
-                self.metadatasSource = NCManageDatabase.shared.getMetadatas(predicate: NSPredicate(format: "account == %@ AND serverUrl == %@", self.appDelegate.account, self.serverUrl))
+            let files = NCManageDatabase.shared.getTableLocalFiles(predicate: NSPredicate(format: "account == %@ AND offline == true", self.appDelegate.account), sorted: "fileName", ascending: true)
+            for file in files {
+                ocIds.append(file.ocId)
             }
+
+            metadatas = NCManageDatabase.shared.getMetadatas(predicate: NSPredicate(format: "account == %@ AND ocId IN %@", self.appDelegate.account, ocIds))
+        } else {
+            metadatas = NCManageDatabase.shared.getMetadatas(predicate: NSPredicate(format: "account == %@ AND serverUrl == %@", self.appDelegate.account, self.serverUrl))
         }
 
         self.dataSource = NCDataSource(
-            metadatasSource: self.metadatasSource,
+            metadatas: metadatas,
             account: self.appDelegate.account,
             sort: self.layoutForView?.sort,
             ascending: self.layoutForView?.ascending,

+ 2 - 2
iOSClient/Recent/NCRecent.swift

@@ -49,8 +49,8 @@ class NCRecent: NCCollectionViewCommon {
 
         DispatchQueue.global().async {
 
-            self.metadatasSource = NCManageDatabase.shared.getAdvancedMetadatas(predicate: NSPredicate(format: "account == %@", self.appDelegate.account), page: 1, limit: 100, sorted: "date", ascending: false)
-            self.dataSource = NCDataSource(metadatasSource: self.metadatasSource,
+            let metadatas = NCManageDatabase.shared.getAdvancedMetadatas(predicate: NSPredicate(format: "account == %@", self.appDelegate.account), page: 1, limit: 100, sorted: "date", ascending: false)
+            self.dataSource = NCDataSource(metadatas: metadatas,
                                            account: self.appDelegate.account,
                                            directoryOnTop: false,
                                            favoriteOnTop: false,

+ 3 - 3
iOSClient/Select/NCSelect.swift

@@ -625,7 +625,7 @@ extension NCSelect: UICollectionViewDataSource {
 
                 header.setButtonsCommand(heigt: 0)
                 header.setButtonsView(heigt: NCGlobal.shared.heightButtonsView)
-                header.setStatusButtonsView(enable: !dataSource.metadatasSource.isEmpty)
+                header.setStatusButtonsView(enable: !dataSource.getMetadataSourceForAllSections().isEmpty)
                 header.setSortedTitle(layoutForView?.titleButtonHeader ?? "")
 
                 header.setRichWorkspaceHeight(heightHeaderRichWorkspace)
@@ -750,8 +750,8 @@ extension NCSelect {
         }
 
 
-        let metadatasSource = NCManageDatabase.shared.getMetadatas(predicate: predicate!)
-        self.dataSource = NCDataSource(metadatasSource: metadatasSource,
+        let metadatas = NCManageDatabase.shared.getMetadatas(predicate: predicate!)
+        self.dataSource = NCDataSource(metadatas: metadatas,
                                        account: activeAccount.account,
                                        sort: layoutForView?.sort,
                                        ascending: layoutForView?.ascending,

+ 4 - 4
iOSClient/Shares/NCShares.swift

@@ -48,17 +48,17 @@ class NCShares: NCCollectionViewCommon {
         super.reloadDataSource()
 
         DispatchQueue.global().async {
-            self.metadatasSource.removeAll()
             let sharess = NCManageDatabase.shared.getTableShares(account: self.appDelegate.account)
+            var metadatas: [tableMetadata] = []
             for share in sharess {
                 if let metadata = NCManageDatabase.shared.getMetadata(predicate: NSPredicate(format: "account == %@ AND serverUrl == %@ AND fileName == %@", self.appDelegate.account, share.serverUrl, share.fileName)) {
-                    if !(self.metadatasSource.contains { $0.ocId == metadata.ocId }) {
-                        self.metadatasSource.append(metadata)
+                    if !(metadatas.contains { $0.ocId == metadata.ocId }) {
+                        metadatas.append(metadata)
                     }
                 }
             }
 
-            self.dataSource = NCDataSource(metadatasSource: self.metadatasSource,
+            self.dataSource = NCDataSource(metadatas: metadatas,
                                            account: self.appDelegate.account,
                                            sort: self.layoutForView?.sort,
                                            ascending: self.layoutForView?.ascending,

+ 2 - 2
iOSClient/Transfers/NCTransfers.swift

@@ -294,8 +294,8 @@ class NCTransfers: NCCollectionViewCommon, NCTransferCellDelegate {
     override func reloadDataSource(forced: Bool = true) {
         super.reloadDataSource()
 
-        metadatasSource = NCManageDatabase.shared.getAdvancedMetadatas(predicate: NSPredicate(format: "status != %i", NCGlobal.shared.metadataStatusNormal), page: 1, limit: 100, sorted: "sessionTaskIdentifier", ascending: false)
-        self.dataSource = NCDataSource(metadatasSource: metadatasSource, account: self.appDelegate.account)
+        let metadatas = NCManageDatabase.shared.getAdvancedMetadatas(predicate: NSPredicate(format: "status != %i", NCGlobal.shared.metadataStatusNormal), page: 1, limit: 100, sorted: "sessionTaskIdentifier", ascending: false)
+        self.dataSource = NCDataSource(metadatas: metadatas, account: self.appDelegate.account)
 
         refreshControl.endRefreshing()
         collectionView.reloadData()