Browse Source

dev Favorite

Marino Faggiana 6 years ago
parent
commit
c5dc20b2a3

+ 1 - 0
PickerFileProvider/FileProvider.swift

@@ -42,6 +42,7 @@ var changeDocumentURL: URL?
 
 // List
 var listUpdateItems = [NSFileProviderItem]()
+var listFavoriteRank = [String:NSNumber]()
 
 class FileProvider: NSFileProviderExtension {
     

+ 5 - 3
PickerFileProvider/FileProviderEnumeratorWorkingSet.swift

@@ -39,8 +39,9 @@ class FileProviderEnumeratorWorkingSet: NSObject, NSFileProviderEnumerator {
         
         var items: [NSFileProviderItemProtocol] = []
         
-        // clear list update items
+        // clear list
         listUpdateItems.removeAll()
+        listFavoriteRank.removeAll()
         
         // Tag
         let tags = NCManageDatabase.sharedInstance.getTags(predicate: NSPredicate(format: "account = %@", account))
@@ -57,8 +58,8 @@ class FileProviderEnumeratorWorkingSet: NSObject, NSFileProviderEnumerator {
             }
         }
         
-        // Favorite
-        let metadatas = NCManageDatabase.sharedInstance.getMetadatas(predicate: NSPredicate(format: "account = %@ AND favorite = true", account), sorted: "fileNameView", ascending: true)
+        // Favorite Directory
+        let metadatas = NCManageDatabase.sharedInstance.getMetadatas(predicate: NSPredicate(format: "account = %@ AND directory = true AND favorite = true", account), sorted: "fileNameView", ascending: true)
         if metadatas != nil {
             for metadata in metadatas! {
             
@@ -66,6 +67,7 @@ class FileProviderEnumeratorWorkingSet: NSObject, NSFileProviderEnumerator {
                     continue
                 }
                 
+                listFavoriteRank[metadata.fileID] = NCManageDatabase.sharedInstance.getTableMetadatasDirectoryFavoriteRank(metadata.fileID)
                 let item = FileProviderItem(metadata: metadata, serverUrl: serverUrl)
                 items.append(item)
             }

+ 1 - 2
PickerFileProvider/FileProviderItem.swift

@@ -160,8 +160,7 @@ class FileProviderItem: NSObject, NSFileProviderItem {
             
         } else {
             
-            // Favorite FOLDER
-            favoriteRank = NCManageDatabase.sharedInstance.getTableMetadatasFavoriteRank(metadata.fileID)
+            favoriteRank = listFavoriteRank[metadata.fileID]
         }
         
         // Tag

+ 2 - 2
iOSClient/Database/NCManageDatabase.swift

@@ -1936,7 +1936,7 @@ class NCManageDatabase: NSObject {
         }
     }
     
-    @objc func getTableMetadatasFavoriteRank(_ fileID: String) -> NSNumber {
+    @objc func getTableMetadatasDirectoryFavoriteRank(_ fileID: String) -> NSNumber {
         
         guard let tableAccount = self.getAccountActive() else {
             return 0
@@ -1948,7 +1948,7 @@ class NCManageDatabase: NSObject {
         var rank = 0 as NSNumber
         var counter = 0 as Int64
         
-        let results = realm.objects(tableMetadata.self).filter("account = %@ AND favorite = true", tableAccount.account).sorted(byKeyPath: "fileNameView", ascending: true)
+        let results = realm.objects(tableMetadata.self).filter("account = %@ AND directory = true AND favorite = true", tableAccount.account).sorted(byKeyPath: "fileNameView", ascending: true)
         
         for result in results {
             counter += 1