Bladeren bron

coding

Signed-off-by: marinofaggiana <ios@nextcloud.com>
marinofaggiana 2 jaren geleden
bovenliggende
commit
b3b284799c
2 gewijzigde bestanden met toevoegingen van 17 en 4 verwijderingen
  1. 9 4
      iOSClient/Data/NCDataSource.swift
  2. 8 0
      iOSClient/Data/NCManageDatabase.swift

+ 9 - 4
iOSClient/Data/NCDataSource.swift

@@ -32,6 +32,7 @@ class NCDataSource: NSObject {
     private var sectionsValue: [String] = []
     private var providers: [NCCSearchProvider]?
     private var shares: [tableShare] = []
+    private var localFiles: [tableLocalFile] = []
 
     private var ascending: Bool = true
     private var sort: String = ""
@@ -49,6 +50,7 @@ class NCDataSource: NSObject {
 
         self.metadatasSource = metadatasSource
         self.shares = NCManageDatabase.shared.getTableShares(account: account)
+        self.localFiles = NCManageDatabase.shared.getTableLocalFile(account: account)
         self.sort = sort ?? "none"
         self.ascending = ascending ?? false
         self.directoryOnTop = directoryOnTop ?? true
@@ -113,6 +115,7 @@ class NCDataSource: NSObject {
         let metadataForSection = NCMetadatasForSection.init(sectionValue: sectionValue,
                                                             metadatas: metadatas,
                                                             shares: self.shares,
+                                                            localFiles: self.localFiles,
                                                             sort: self.sort,
                                                             ascending: self.ascending,
                                                             directoryOnTop: self.directoryOnTop,
@@ -308,6 +311,7 @@ class NCMetadatasForSection: NSObject {
     var sectionValue: String
     var metadatas: [tableMetadata]
     var shares: [tableShare]
+    var localFiles: [tableLocalFile]
 
     private var sort : String
     private var ascending: Bool
@@ -328,11 +332,12 @@ class NCMetadatasForSection: NSObject {
     public var metadataOffLine: [String] = []
 
 
-    init(sectionValue: String, metadatas: [tableMetadata], shares: [tableShare], sort: String, ascending: Bool, directoryOnTop: Bool, favoriteOnTop: Bool, filterLivePhoto: Bool) {
+    init(sectionValue: String, metadatas: [tableMetadata], shares: [tableShare], localFiles: [tableLocalFile], sort: String, ascending: Bool, directoryOnTop: Bool, favoriteOnTop: Bool, filterLivePhoto: Bool) {
 
         self.sectionValue = sectionValue
         self.metadatas = metadatas
         self.shares = shares
+        self.localFiles = localFiles
         self.sort = sort
         self.ascending = ascending
         self.directoryOnTop = directoryOnTop
@@ -411,11 +416,11 @@ class NCMetadatasForSection: NSObject {
 
             // is Local / offline
             if !metadata.directory, CCUtility.fileProviderStorageExists(metadata) {
-                let tableLocalFile = NCManageDatabase.shared.getTableLocalFile(predicate: NSPredicate(format: "ocId == %@", metadata.ocId))
-                if tableLocalFile == nil {
+                let localFile = self.localFiles.filter({ $0.ocId == metadata.ocId }).first
+                if localFile == nil {
                     NCManageDatabase.shared.addLocalFile(metadata: metadata)
                 }
-                if tableLocalFile?.offline ?? false {
+                if localFile?.offline ?? false {
                     metadataOffLine.append(metadata.ocId)
                 }
             }

+ 8 - 0
iOSClient/Data/NCManageDatabase.swift

@@ -1232,6 +1232,14 @@ class NCManageDatabase: NSObject {
         }
     }
 
+    @objc func getTableLocalFile(account: String) -> [tableLocalFile] {
+
+        let realm = try! Realm()
+
+        let results = realm.objects(tableLocalFile.self).filter("account == %@", account)
+        return Array(results.map { tableLocalFile.init(value: $0) })
+    }
+
     @objc func getTableLocalFile(predicate: NSPredicate) -> tableLocalFile? {
 
         let realm = try! Realm()