Przeglądaj źródła

Add FavoriteRank

Marino Faggiana 6 lat temu
rodzic
commit
8bcca1649a

+ 5 - 0
PickerFileProvider/FileProviderItem.swift

@@ -66,6 +66,8 @@ class FileProviderItem: NSObject, NSFileProviderItem {
 
     var tagData: Data?                                              // Tag
     
+    var favoriteRank: NSNumber?                                     // Favorite
+    
     var isDirectory = false
 
     init(metadata: tableMetadata, serverUrl: String) {
@@ -161,5 +163,8 @@ class FileProviderItem: NSObject, NSFileProviderItem {
         if let tableTag = NCManageDatabase.sharedInstance.getTag(predicate: NSPredicate(format: "account = %@ AND fileID = %@", metadata.account, metadata.fileID)) {
             tagData = tableTag.tagIOS
         }
+     
+        // Favorite
+        favoriteRank = NCManageDatabase.sharedInstance.getTableMetadatasFavoriteRank(metadata.fileID)
     }
 }

+ 25 - 0
iOSClient/Database/NCManageDatabase.swift

@@ -1936,6 +1936,31 @@ class NCManageDatabase: NSObject {
         }
     }
     
+    @objc func getTableMetadatasFavoriteRank(_ fileID: String) -> NSNumber {
+        
+        guard let tableAccount = self.getAccountActive() else {
+            return 0
+        }
+        
+        let realm = try! Realm()
+        realm.refresh()
+        
+        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: "fileID", ascending: true)
+        
+        for result in results {
+            counter += 1
+            if result.fileID == fileID {
+                rank = NSNumber(value: Int64(counter))
+                break
+            }
+        }
+        
+        return rank
+    }
+    
     @objc func updateTableMetadatasContentTypeImageVideo(_ metadatas: [tableMetadata], startDirectory: String, activeUrl: String) -> Bool {
         
         guard let tableAccount = self.getAccountActive() else {