marinofaggiana 6 years ago
parent
commit
b32aaabc5a
2 changed files with 20 additions and 27 deletions
  1. 14 21
      iOSClient/Database/NCManageDatabase.swift
  2. 6 6
      iOSClient/Media/NCMedia.swift

+ 14 - 21
iOSClient/Database/NCManageDatabase.swift

@@ -1978,46 +1978,39 @@ class NCManageDatabase: NSObject {
         }
     }
     
-    func createTableMedia(_ metadatas: [tableMetadata], lteDate: Date, gteDate: Date,account: String) -> (differenceSizeInsert: Int64, differenceNumInsert: Int64) {
+    func createTableMedia(_ metadatas: [tableMetadata], lteDate: Date, gteDate: Date,account: String) -> (isDifferent: Bool, differenceNumInsert: Int) {
 
         let realm = try! Realm()
         realm.refresh()
         
-        var sizeDelete: Int64 = 0
-        var sizeInsert: Int64 = 0
-        var numDelete: Int64 = 0
-        var numInsert: Int64 = 0
-        var differenceSizeInsert: Int64 = 0
-        var differenceNumInsert: Int64 = 0
+        var numDelete: Int = 0
+        var numInsert: Int = 0
+        var differenceNumInsert: Int = 0
         var etagsDelete = [String]()
         var etagsInsert = [String]()
+        var isDifferent: Bool = false
         
         do {
             try realm.write {
+                
                 // DELETE ALL
                 let results = realm.objects(tableMedia.self).filter("account = %@ AND date >= %@ AND date <= %@", account, gteDate, lteDate)
                 etagsDelete = Array(results.map { $0.etag })
-                for result in results {
-                    sizeDelete = sizeDelete + Int64(result.size)
-                    numDelete += 1
-                }
+                numDelete = results.count
                 realm.delete(results)
+                
                 // INSERT ALL
                 let photos = Array(metadatas.map { tableMedia.init(value:$0) })
-                for photo in photos {
-                    etagsInsert.append(photo.etag)
-                    sizeInsert = sizeInsert + Int64(photo.size)
-                    numInsert += 1
-                }
+                etagsInsert = Array(results.map { $0.etag })
+                numInsert = photos.count
                 realm.add(photos, update: true)
                 
+                // CALCULATE RETURN
                 if etagsDelete.count == etagsInsert.count && etagsDelete.sorted() == etagsInsert.sorted() {
-                    print("same")
+                    isDifferent = false
                 } else {
-                    print("different")
+                    isDifferent = true
                 }
-                
-                differenceSizeInsert = sizeInsert - sizeDelete
                 differenceNumInsert = numInsert - numDelete
             }
         } catch let error {
@@ -2025,7 +2018,7 @@ class NCManageDatabase: NSObject {
             realm.cancelWrite()
         }
         
-        return(differenceSizeInsert, differenceNumInsert)
+        return(isDifferent, differenceNumInsert)
     }
     
     @objc func getTableMediaDate(account: String, order: ComparisonResult) -> Date {

+ 6 - 6
iOSClient/Media/NCMedia.swift

@@ -549,24 +549,24 @@ extension NCMedia {
             
             if errorCode == 0 && account == self.appDelegate.activeAccount {
                 
-                var differenceSizeInsert: Int64 = 0
-                var differenceNumInsert: Int64 = 0
+                var isDifferent: Bool = false
+                var differenceNumInsert: Int = 0
                 
                 let totalDistance = Calendar.current.dateComponents([Calendar.Component.day], from: gteDate, to: lteDate).value(for: .day) ?? 0
                 
                 let difference = NCManageDatabase.sharedInstance.createTableMedia(metadatas as! [tableMetadata], lteDate: lteDate, gteDate: gteDate, account: account!)
-                differenceSizeInsert = difference.differenceSizeInsert
+                isDifferent = difference.isDifferent
                 differenceNumInsert = difference.differenceNumInsert
                 
                 self.loadingSearch = false
                 
-                print("[LOG] Totale Distance \(totalDistance) - Different Size \(differenceSizeInsert) - Different Num \(differenceNumInsert)")
+                print("[LOG] Search: Totale Distance \(totalDistance) - It's Different \(isDifferent) - Different Num \(differenceNumInsert)")
                 
-                if differenceSizeInsert != 0 {
+                if isDifferent {
                     self.reloadDataSource(loadNetworkDatasource: false)
                 }
                 
-                if (differenceSizeInsert == 0 || differenceNumInsert < 100) && addPast && setDistantPast == false {
+                if (isDifferent == false || differenceNumInsert < 100) && addPast && setDistantPast == false {
                     
                     switch totalDistance {
                     case 0...89: