Browse Source

add alignTableMedia

marinofaggiana 5 years ago
parent
commit
1188a89db8
2 changed files with 30 additions and 0 deletions
  1. 7 0
      iOSClient/AppDelegate.m
  2. 23 0
      iOSClient/Database/NCManageDatabase.swift

+ 7 - 0
iOSClient/AppDelegate.m

@@ -221,9 +221,16 @@ PKPushRegistry *pushRegistry;
 //
 - (void)applicationWillResignActive:(UIApplication *)application
 {
+    // Test Maintenance
+    if (self.activeAccount.length == 0 || self.maintenanceMode)
+        return;
+    
     [_activeMain closeAllMenu];
     
     [self updateApplicationIconBadgeNumber];
+    
+    // Align Table Media
+    [[NCManageDatabase sharedInstance] alignTableMediaWithAccount:self.activeAccount];
 }
 
 //

+ 23 - 0
iOSClient/Database/NCManageDatabase.swift

@@ -2084,6 +2084,29 @@ class NCManageDatabase: NSObject {
         return Calendar.current.date(bySettingHour: 0, minute: 0, second: 0, of: Date())!
     }
     
+    @objc func alignTableMedia(account: String) {
+        
+        let realm = try! Realm()
+        realm.refresh()
+        
+        do {
+            try realm.write {
+                
+                let results = realm.objects(tableMedia.self).filter(NSPredicate(format: "account == %@", account))
+                for result in results {
+                    guard let metadata = realm.objects(tableMetadata.self).filter(NSPredicate(format: "fileID == %@", result.fileID)).first else {
+                        continue
+                    }
+                    realm.delete(result)
+                    realm.add(tableMedia.init(value: metadata))
+                 }
+            }
+        } catch let error {
+            print("[LOG] Could not write to database: ", error)
+            realm.cancelWrite()
+        }
+    }
+    
     //MARK: -
     //MARK: Table Photo Library