Kaynağa Gözat

Improvements Media

marinofaggiana 6 yıl önce
ebeveyn
işleme
4a492fa0a6

+ 10 - 4
iOSClient/Database/NCManageDatabase.swift

@@ -1952,14 +1952,17 @@ class NCManageDatabase: NSObject {
         }
     }
     
-    @objc func createTableMedia(_ metadatas: [tableMetadata], lteDate: Date, gteDate: Date,account: String) -> Int64 {
+    func createTableMedia(_ metadatas: [tableMetadata], lteDate: Date, gteDate: Date,account: String) -> (differenceSizeInsert: Int64, differenceNumInsert: Int64) {
 
         let realm = try! Realm()
         realm.refresh()
         
         var sizeDelete: Int64 = 0
         var sizeInsert: Int64 = 0
-        var differenceInsert: Int64 = 0
+        var numDelete: Int64 = 0
+        var numInsert: Int64 = 0
+        var differenceSizeInsert: Int64 = 0
+        var differenceNumInsert: Int64 = 0
 
         do {
             try realm.write {
@@ -1967,22 +1970,25 @@ class NCManageDatabase: NSObject {
                 let results = realm.objects(tableMedia.self).filter("account = %@ AND date >= %@ AND date <= %@", account, gteDate, lteDate)
                 for resul in results {
                     sizeDelete = sizeDelete + Int64(resul.size)
+                    numDelete += 1
                 }
                 realm.delete(results)
                 // INSERT ALL
                 let photos = Array(metadatas.map { tableMedia.init(value:$0) })
                 for photo in photos {
                     sizeInsert = sizeInsert + Int64(photo.size)
+                    numInsert += 1
                 }
                 realm.add(photos, update: true)
-                differenceInsert = sizeInsert - sizeDelete
+                differenceSizeInsert = sizeInsert - sizeDelete
+                differenceNumInsert = numInsert - numDelete
             }
         } catch let error {
             print("[LOG] Could not write to database: ", error)
             realm.cancelWrite()
         }
         
-        return differenceInsert
+        return(differenceSizeInsert, differenceNumInsert)
     }
     
     @objc func getTableMediaDate(account: String, order: ComparisonResult) -> Date {

+ 9 - 5
iOSClient/Media/NCMedia.swift

@@ -371,22 +371,26 @@ class NCMedia: UIViewController ,UICollectionViewDataSource, UICollectionViewDel
             
             if errorCode == 0 && account == self.appDelegate.activeAccount {
                 
-                var differenceInsert: Int64 = 0
+                var differenceSizeInsert: Int64 = 0
+                var differenceNumInsert: Int64 = 0
+
                 let totalDistance = Calendar.current.dateComponents([Calendar.Component.day], from: gteDate, to: lteDate).value(for: .day) ?? 0
 
                 if metadatas != nil && metadatas!.count > 0 {
-                    differenceInsert = NCManageDatabase.sharedInstance.createTableMedia(metadatas as! [tableMetadata], lteDate: lteDate, gteDate: gteDate, account: account!)
+                    let difference = NCManageDatabase.sharedInstance.createTableMedia(metadatas as! [tableMetadata], lteDate: lteDate, gteDate: gteDate, account: account!)
+                    differenceSizeInsert = difference.differenceSizeInsert
+                    differenceNumInsert = difference.differenceNumInsert
                 }
                 
                 self.loadingSearch = false
 
-                print("[LOG] Totale Distance \(totalDistance) - Different Insert \(differenceInsert)]")
+                print("[LOG] Totale Distance \(totalDistance) - Different Size \(differenceSizeInsert) - Different Num \(differenceNumInsert)")
 
-                if differenceInsert != 0 {
+                if differenceSizeInsert != 0 {
                     self.collectionViewReloadDataSource(loadNetworkDatasource: false)
                 }
                 
-                if differenceInsert == 0 && addPast && setDistantPast == false {
+                if (differenceSizeInsert == 0 || differenceNumInsert < 100) && addPast && setDistantPast == false {
                     
                     switch totalDistance {
                     case 0...89: