Эх сурвалжийг харах

coding

Signed-off-by: marinofaggiana <ios@nextcloud.com>
marinofaggiana 2 жил өмнө
parent
commit
a0a78269f0

+ 1 - 0
Share/NCShareExtension+Files.swift

@@ -32,6 +32,7 @@ extension NCShareExtension {
         let metadatasSource = NCManageDatabase.shared.getMetadatas(predicate: NSPredicate(format: "account == %@ AND serverUrl == %@ AND directory == true", activeAccount.account, serverUrl))
         self.dataSource = NCDataSource(
             metadatasSource: metadatasSource,
+            account: activeAccount.account,
             sort: layoutForView?.sort,
             ascending: layoutForView?.ascending,
             directoryOnTop: layoutForView?.directoryOnTop,

+ 16 - 6
iOSClient/Data/NCDataSource.swift

@@ -31,6 +31,7 @@ class NCDataSource: NSObject {
 
     private var sectionsValue: [String] = []
     private var providers: [NCCSearchProvider]?
+    private var shares: [tableShare] = []
 
     private var ascending: Bool = true
     private var sort: String = ""
@@ -43,10 +44,11 @@ class NCDataSource: NSObject {
         super.init()
     }
 
-    init(metadatasSource: [tableMetadata], sort: String? = "none", ascending: Bool? = false, directoryOnTop: Bool? = true, favoriteOnTop: Bool? = true, filterLivePhoto: Bool? = true, groupByField: String = "name", providers: [NCCSearchProvider]? = nil) {
+    init(metadatasSource: [tableMetadata], account: String, sort: String? = "none", ascending: Bool? = false, directoryOnTop: Bool? = true, favoriteOnTop: Bool? = true, filterLivePhoto: Bool? = true, groupByField: String = "name", providers: [NCCSearchProvider]? = nil) {
         super.init()
 
         self.metadatasSource = metadatasSource
+        self.shares = NCManageDatabase.shared.getTableShares(account: account)
         self.sort = sort ?? "none"
         self.ascending = ascending ?? false
         self.directoryOnTop = directoryOnTop ?? true
@@ -108,7 +110,14 @@ class NCDataSource: NSObject {
     internal func createMetadataForSection(sectionValue: String) {
 
         let metadatas = metadatasSource.filter({ getSectionValue(metadata: $0) == sectionValue})
-        let metadataForSection = NCMetadatasForSection.init(sectionValue: sectionValue, metadatas: metadatas, sort: self.sort, ascending: self.ascending, directoryOnTop: self.directoryOnTop, favoriteOnTop: self.favoriteOnTop, filterLivePhoto: self.filterLivePhoto)
+        let metadataForSection = NCMetadatasForSection.init(sectionValue: sectionValue,
+                                                            metadatas: metadatas,
+                                                            shares: self.shares,
+                                                            sort: self.sort,
+                                                            ascending: self.ascending,
+                                                            directoryOnTop: self.directoryOnTop,
+                                                            favoriteOnTop: self.favoriteOnTop,
+                                                            filterLivePhoto: self.filterLivePhoto)
         metadatasForSection.append(metadataForSection)
     }
 
@@ -298,6 +307,7 @@ class NCMetadatasForSection: NSObject {
 
     var sectionValue: String
     var metadatas: [tableMetadata]
+    var shares: [tableShare]
 
     private var sort : String
     private var ascending: Bool
@@ -318,10 +328,11 @@ class NCMetadatasForSection: NSObject {
     public var metadataOffLine: [String] = []
 
 
-    init(sectionValue: String, metadatas: [tableMetadata], sort: String, ascending: Bool, directoryOnTop: Bool, favoriteOnTop: Bool, filterLivePhoto: Bool) {
+    init(sectionValue: String, metadatas: [tableMetadata], shares: [tableShare], sort: String, ascending: Bool, directoryOnTop: Bool, favoriteOnTop: Bool, filterLivePhoto: Bool) {
 
         self.sectionValue = sectionValue
         self.metadatas = metadatas
+        self.shares = shares
         self.sort = sort
         self.ascending = ascending
         self.directoryOnTop = directoryOnTop
@@ -394,9 +405,8 @@ class NCMetadatasForSection: NSObject {
             }
 
             // share
-            let shares = NCManageDatabase.shared.getTableShares(account: metadata.account, serverUrl: metadata.serverUrl, fileName: metadata.fileName)
-            if shares.count > 0 {
-                metadataShare[metadata.ocId] = shares.first
+            if let share = self.shares.filter({ $0.serverUrl == metadata.serverUrl && $0.fileName == metadata.fileName }).first {
+                metadataShare[metadata.ocId] = share
             }
 
             // is Local / offline

+ 7 - 7
iOSClient/Favorites/NCFavorite.swift

@@ -55,13 +55,13 @@ class NCFavorite: NCCollectionViewCommon {
             }
         }
 
-        self.dataSource = NCDataSource(
-            metadatasSource: self.metadatasSource,
-            sort: self.layoutForView?.sort,
-            ascending: self.layoutForView?.ascending,
-            directoryOnTop: self.layoutForView?.directoryOnTop,
-            favoriteOnTop: true,
-            filterLivePhoto: true)
+        self.dataSource = NCDataSource(metadatasSource: self.metadatasSource,
+                                       account: self.appDelegate.account,
+                                       sort: self.layoutForView?.sort,
+                                       ascending: self.layoutForView?.ascending,
+                                       directoryOnTop: self.layoutForView?.directoryOnTop,
+                                       favoriteOnTop: true,
+                                       filterLivePhoto: true)
 
         DispatchQueue.main.async {
             self.refreshControl.endRefreshing()

+ 7 - 1
iOSClient/FileViewInFolder/NCFileViewInFolder.swift

@@ -91,7 +91,13 @@ class NCFileViewInFolder: NCCollectionViewCommon {
                 }
             }
 
-            self.dataSource = NCDataSource(metadatasSource: self.metadatasSource, sort: self.layoutForView?.sort, ascending: self.layoutForView?.ascending, directoryOnTop: self.layoutForView?.directoryOnTop, favoriteOnTop: true, filterLivePhoto: true)
+            self.dataSource = NCDataSource(metadatasSource: self.metadatasSource,
+                                           account: self.appDelegate.account,
+                                           sort: self.layoutForView?.sort,
+                                           ascending: self.layoutForView?.ascending,
+                                           directoryOnTop: self.layoutForView?.directoryOnTop,
+                                           favoriteOnTop: true,
+                                           filterLivePhoto: true)
 
             DispatchQueue.main.async {
 

+ 1 - 0
iOSClient/Files/NCFiles.swift

@@ -82,6 +82,7 @@ class NCFiles: NCCollectionViewCommon {
 
         self.dataSource = NCDataSource(
             metadatasSource: self.metadatasSource,
+            account: self.appDelegate.account,
             sort: self.layoutForView?.sort,
             ascending: self.layoutForView?.ascending,
             directoryOnTop: self.layoutForView?.directoryOnTop,

+ 8 - 8
iOSClient/Main/Collection Common/NCCollectionViewCommon.swift

@@ -1032,14 +1032,14 @@ class NCCollectionViewCommon: UIViewController, UIGestureRecognizerDelegate, UIS
                 DispatchQueue.main.async {
                     if self.searchController?.isActive == true {
                         self.metadatasSource = metadatas
-                        self.dataSource = NCDataSource(
-                            metadatasSource: self.metadatasSource,
-                            sort: self.layoutForView?.sort,
-                            ascending: self.layoutForView?.ascending,
-                            directoryOnTop: self.layoutForView?.directoryOnTop,
-                            favoriteOnTop: true,
-                            filterLivePhoto: true,
-                            providers: providers)
+                        self.dataSource = NCDataSource(metadatasSource: self.metadatasSource,
+                                                       account: self.appDelegate.account,
+                                                       sort: self.layoutForView?.sort,
+                                                       ascending: self.layoutForView?.ascending,
+                                                       directoryOnTop: self.layoutForView?.directoryOnTop,
+                                                       favoriteOnTop: true,
+                                                       filterLivePhoto: true,
+                                                       providers: providers)
                         self.collectionView.reloadData()
                     }
                 }

+ 1 - 0
iOSClient/Offline/NCOffline.swift

@@ -70,6 +70,7 @@ class NCOffline: NCCollectionViewCommon {
 
         self.dataSource = NCDataSource(
             metadatasSource: self.metadatasSource,
+            account: self.appDelegate.account,
             sort: self.layoutForView?.sort,
             ascending: self.layoutForView?.ascending,
             directoryOnTop: self.layoutForView?.directoryOnTop,

+ 4 - 1
iOSClient/Recent/NCRecent.swift

@@ -50,7 +50,10 @@ 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, directoryOnTop: false, favoriteOnTop: false)
+            self.dataSource = NCDataSource(metadatasSource: self.metadatasSource,
+                                           account: self.appDelegate.account,
+                                           directoryOnTop: false,
+                                           favoriteOnTop: false)
 
             DispatchQueue.main.async {
                 self.refreshControl.endRefreshing()

+ 7 - 1
iOSClient/Select/NCSelect.swift

@@ -730,7 +730,13 @@ extension NCSelect {
         }
 
         let metadatasSource = NCManageDatabase.shared.getMetadatas(predicate: predicate!)
-        self.dataSource = NCDataSource(metadatasSource: metadatasSource, sort: layoutForView?.sort, ascending: layoutForView?.ascending, directoryOnTop: layoutForView?.directoryOnTop, favoriteOnTop: true, filterLivePhoto: true)
+        self.dataSource = NCDataSource(metadatasSource: metadatasSource,
+                                       account: activeAccount.account,
+                                       sort: layoutForView?.sort,
+                                       ascending: layoutForView?.ascending,
+                                       directoryOnTop: layoutForView?.directoryOnTop,
+                                       favoriteOnTop: true,
+                                       filterLivePhoto: true)
 
         if withLoadFolder {
             loadFolder()

+ 7 - 1
iOSClient/Shares/NCShares.swift

@@ -58,7 +58,13 @@ class NCShares: NCCollectionViewCommon {
                 }
             }
 
-            self.dataSource = NCDataSource(metadatasSource: self.metadatasSource, sort: self.layoutForView?.sort, ascending: self.layoutForView?.ascending, directoryOnTop: self.layoutForView?.directoryOnTop, favoriteOnTop: true, filterLivePhoto: true)
+            self.dataSource = NCDataSource(metadatasSource: self.metadatasSource,
+                                           account: self.appDelegate.account,
+                                           sort: self.layoutForView?.sort,
+                                           ascending: self.layoutForView?.ascending,
+                                           directoryOnTop: self.layoutForView?.directoryOnTop,
+                                           favoriteOnTop: true,
+                                           filterLivePhoto: true)
 
             DispatchQueue.main.async {
                 self.refreshControl.endRefreshing()

+ 1 - 1
iOSClient/Transfers/NCTransfers.swift

@@ -269,7 +269,7 @@ class NCTransfers: NCCollectionViewCommon, NCTransferCellDelegate {
         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)
+        self.dataSource = NCDataSource(metadatasSource: metadatasSource, account: self.appDelegate.account)
 
         refreshControl.endRefreshing()
         collectionView.reloadData()