瀏覽代碼

new system detect auto upload

Marino Faggiana 7 年之前
父節點
當前提交
4d1ce1eb3d

+ 4 - 0
iOSClient/AutoUpload/NCAutoUpload.h

@@ -26,6 +26,8 @@
 #import "CCManageAutoUpload.h"
 #import "NCRequestAsset.h"
 
+@class tableAccount;
+
 @interface NCAutoUpload : NSObject <PHPhotoLibraryChangeObserver, CCManageLocationDelegate, NCRequestAssetDelegate>
 
 + (NCAutoUpload *)sharedInstance;
@@ -38,4 +40,6 @@
 
 - (BOOL)createFolderSubFolderAutoUploadFolderPhotos:(NSString *)folderPhotos useSubFolder:(BOOL)useSubFolder assets:(PHFetchResult *)assets selector:(NSString *)selector;
 
+- (void)alignPhotoLibrary;
+
 @end

+ 39 - 21
iOSClient/AutoUpload/NCAutoUpload.m

@@ -333,20 +333,24 @@
 
 - (void)uploadNewAssets
 {
-    [self uploadAssetsNewAndFull:NO];
+    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0), ^{
+        [self uploadAssetsNewAndFull:NO];
+    });
 }
 
 - (void)uploadFullAssets
 {
-    [self uploadAssetsNewAndFull:YES];
+    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0), ^{
+        [self uploadAssetsNewAndFull:YES];
+    });
 }
 
 - (void)uploadAssetsNewAndFull:(BOOL)assetsFull
 {
-    tableAccount *account = [[NCManageDatabase sharedInstance] getAccountActive];
+     if (!app.activeAccount || app.maintenanceMode)
+         return;
     
-    // ONLY FOR TEST
-    //[self getCameraRollNewItemsWithDatePhotoTEST:[NSDate distantPast] dateVideo:[NSDate distantPast] account:account];
+    tableAccount *account = [[NCManageDatabase sharedInstance] getAccountActive];
     
     // Check Asset : NEW or FULL
     PHFetchResult *newAssetToUpload = [self getCameraRollAssets:account assetsFull:assetsFull];
@@ -354,24 +358,25 @@
     // News Assets ? if no verify if blocked Table Auto Upload -> Autostart
     if ([newAssetToUpload count] == 0) {
         
-        NSLog(@"[LOG] Auto upload, no new asset found for date image %@, date video %@", account.autoUploadDatePhoto, account.autoUploadDateVideo);
+        NSLog(@"[LOG] Auto upload, no new asset found");
         return;
         
     } else {
         
-        NSLog(@"[LOG] Auto upload, new %lu asset found for date image %@, date video %@", (unsigned long)[newAssetToUpload count], account.autoUploadDatePhoto, account.autoUploadDateVideo);
+        NSLog(@"[LOG] Auto upload, new %lu asset found", (unsigned long)[newAssetToUpload count]);
     }
     
-    if (assetsFull) {
+    dispatch_async(dispatch_get_main_queue(), ^{
+        if (assetsFull) {
         
-        if (!_hud)
-            _hud = [[CCHud alloc] initWithView:[[[UIApplication sharedApplication] delegate] window]];
+            if (!_hud)
+                _hud = [[CCHud alloc] initWithView:[[[UIApplication sharedApplication] delegate] window]];
         
-        [_hud visibleHudTitle:NSLocalizedString(@"_create_full_upload_", nil) mode:MBProgressHUDModeIndeterminate color:nil];
-    }
+            [_hud visibleHudTitle:NSLocalizedString(@"_create_full_upload_", nil) mode:MBProgressHUDModeIndeterminate color:nil];
+        }
+    });
     
     dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 0.01 * NSEC_PER_SEC), dispatch_get_main_queue(), ^(void) {
-        
         if (assetsFull)
             [self performSelectorOnMainThread:@selector(uploadFullAssetsToNetwork:) withObject:newAssetToUpload waitUntilDone:NO];
         else
@@ -481,21 +486,21 @@
     [_hud hideHud];
 }
 
-- (void)addDatabaseAutoUpload:(CCMetadataNet *)metadataNet modificationDate:(NSDate *)modificationDate assetMediaType:(PHAssetMediaType)assetMediaType
+- (void)addDatabaseAutoUpload:(CCMetadataNet *)metadataNet asset:(PHAsset *)asset
 {
     if ([[NCManageDatabase sharedInstance] addAutoUploadWithMetadataNet:metadataNet]) {
         
-        [[NCManageDatabase sharedInstance] addActivityClient:metadataNet.fileName fileID:metadataNet.assetLocalIdentifier action:k_activityDebugActionAutoUpload selector:metadataNet.selector note:[NSString stringWithFormat:@"Add Auto Upload, Asset Data: %@", [NSDateFormatter localizedStringFromDate:modificationDate dateStyle:NSDateFormatterMediumStyle timeStyle:NSDateFormatterMediumStyle]] type:k_activityTypeInfo verbose:k_activityVerboseHigh activeUrl:app.activeUrl];
+        [[NCManageDatabase sharedInstance] addActivityClient:metadataNet.fileName fileID:metadataNet.assetLocalIdentifier action:k_activityDebugActionAutoUpload selector:metadataNet.selector note:[NSString stringWithFormat:@"Add Auto Upload, Asset : %@", asset.localIdentifier] type:k_activityTypeInfo verbose:k_activityVerboseHigh activeUrl:app.activeUrl];
         
     } else {
         
-        [[NCManageDatabase sharedInstance] addActivityClient:metadataNet.fileName fileID:metadataNet.assetLocalIdentifier action:k_activityDebugActionAutoUpload selector:metadataNet.selector note:[NSString stringWithFormat:@"Add Auto Upload [File already present in Table autoUpload], Asset Data: %@", [NSDateFormatter localizedStringFromDate:modificationDate dateStyle:NSDateFormatterMediumStyle timeStyle:NSDateFormatterMediumStyle]] type:k_activityTypeInfo verbose:k_activityVerboseHigh activeUrl:app.activeUrl];
+        [[NCManageDatabase sharedInstance] addActivityClient:metadataNet.fileName fileID:metadataNet.assetLocalIdentifier action:k_activityDebugActionAutoUpload selector:metadataNet.selector note:[NSString stringWithFormat:@"Add Auto Upload [File already present in Table autoUpload], Asset Data: %@", asset.localIdentifier] type:k_activityTypeInfo verbose:k_activityVerboseHigh activeUrl:app.activeUrl];
     }
     
     // Update Camera Auto Upload data
     if ([metadataNet.selector isEqualToString:selectorUploadAutoUpload])
-        [[NCManageDatabase sharedInstance] setAccountAutoUploadDateAssetType:assetMediaType assetDate:modificationDate];
-    
+        [[NCManageDatabase sharedInstance] addPhotoLibrary:@[asset]];
+        
     dispatch_async(dispatch_get_main_queue(), ^{
         // Update icon badge number
         [app updateApplicationIconBadgeNumber];
@@ -698,11 +703,9 @@
             
                 NSArray *assetsLocalIdentifier = [[NCManageDatabase sharedInstance] getPhotoLibraryWithImage:image video:video];
                 
-                for (PHAsset *asset in assets) {
-                    
+                for (PHAsset *asset in assets)
                     if (![assetsLocalIdentifier containsObject: asset.localIdentifier])
                         [newAssets addObject:asset];
-                }
                 
                 return (PHFetchResult *)newAssets;
                 
@@ -721,4 +724,19 @@
     return nil;
 }
 
+#pragma --------------------------------------------------------------------------------------------
+#pragma mark ===== Align Photo Library ====
+#pragma --------------------------------------------------------------------------------------------
+
+- (void)alignPhotoLibrary
+{
+    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0), ^{
+        
+        tableAccount *account = [[NCManageDatabase sharedInstance] getAccountActive];
+
+        PHFetchResult *assets = [self getCameraRollAssets:account assetsFull:YES];
+        [[NCManageDatabase sharedInstance] addPhotoLibrary:(NSArray *)assets];
+    });
+}
+
 @end

+ 34 - 33
iOSClient/Database/NCDatabase.swift

@@ -26,31 +26,29 @@ import RealmSwift
 class tableAccount: Object {
 
     dynamic var account = ""
-    dynamic var active : Bool = false
+    dynamic var active: Bool = false
     dynamic var address = ""
-    dynamic var autoUpload : Bool = false
-    dynamic var autoUploadBackground : Bool = false
-    dynamic var autoUploadCreateSubfolder : Bool = false
-    dynamic var autoUploadDatePhoto: NSDate? = nil
-    dynamic var autoUploadDateVideo: NSDate? = nil
+    dynamic var autoUpload: Bool = false
+    dynamic var autoUploadBackground: Bool = false
+    dynamic var autoUploadCreateSubfolder: Bool = false
     dynamic var autoUploadFileName = ""
     dynamic var autoUploadDirectory = ""
-    dynamic var autoUploadFull : Bool = false
-    dynamic var autoUploadPhoto : Bool = false
-    dynamic var autoUploadVideo : Bool = false
-    dynamic var autoUploadWWAnPhoto : Bool = false
-    dynamic var autoUploadWWAnVideo : Bool = false
+    dynamic var autoUploadFull: Bool = false
+    dynamic var autoUploadPhoto: Bool = false
+    dynamic var autoUploadVideo: Bool = false
+    dynamic var autoUploadWWAnPhoto: Bool = false
+    dynamic var autoUploadWWAnVideo: Bool = false
     dynamic var displayName = ""
     dynamic var email = ""
-    dynamic var enabled : Bool = false
+    dynamic var enabled: Bool = false
     dynamic var optimization = NSDate()
     dynamic var password = ""
     dynamic var phone = ""
-    dynamic var quota : Double = 0
-    dynamic var quotaFree : Double = 0
-    dynamic var quotaRelative : Double = 0
-    dynamic var quotaTotal : Double = 0
-    dynamic var quotaUsed : Double = 0
+    dynamic var quota: Double = 0
+    dynamic var quotaFree: Double = 0
+    dynamic var quotaRelative: Double = 0
+    dynamic var quotaTotal: Double = 0
+    dynamic var quotaUsed: Double = 0
     dynamic var twitter = ""
     dynamic var url = ""
     dynamic var user = ""
@@ -64,12 +62,12 @@ class tableActivity: Object {
     dynamic var date = NSDate()
     dynamic var file = ""
     dynamic var fileID = ""
-    dynamic var idActivity : Double = 0
+    dynamic var idActivity: Double = 0
     dynamic var link = ""
     dynamic var note = ""
     dynamic var selector = ""
     dynamic var type = ""
-    dynamic var verbose : Bool = false
+    dynamic var verbose: Bool = false
 }
 
 class tableAutoUpload: Object {
@@ -78,8 +76,8 @@ class tableAutoUpload: Object {
     dynamic var assetLocalIdentifier = ""
     dynamic var date = NSDate()
     dynamic var fileName = ""
-    dynamic var lock : Bool = false
-    dynamic var priority : Int = 0
+    dynamic var lock: Bool = false
+    dynamic var priority: Int = 0
     dynamic var selector = ""
     dynamic var selectorPost = ""
     dynamic var serverUrl = ""
@@ -95,9 +93,9 @@ class tableCapabilities: Object {
     dynamic var themingName = ""
     dynamic var themingSlogan = ""
     dynamic var themingUrl = ""
-    dynamic var versionMajor : Int = 0
-    dynamic var versionMicro : Int = 0
-    dynamic var versionMinor : Int = 0
+    dynamic var versionMajor: Int = 0
+    dynamic var versionMicro: Int = 0
+    dynamic var versionMinor: Int = 0
     dynamic var versionString = ""
 }
 
@@ -114,7 +112,7 @@ class tableDirectory: Object {
     dynamic var etag = ""
     dynamic var favorite: Bool = false
     dynamic var fileID = ""
-    dynamic var lock : Bool = false
+    dynamic var lock: Bool = false
     dynamic var permissions = ""
     dynamic var serverUrl = ""
     
@@ -127,7 +125,7 @@ class tableExternalSites: Object {
     
     dynamic var account = ""
     dynamic var icon = ""
-    dynamic var idExternalSite : Int = 0
+    dynamic var idExternalSite: Int = 0
     dynamic var lang = ""
     dynamic var name = ""
     dynamic var type = ""
@@ -158,7 +156,7 @@ class tableLocalFile: Object {
     dynamic var fileID = ""
     dynamic var fileName = ""
     dynamic var fileNamePrint = ""
-    dynamic var size : Double = 0
+    dynamic var size: Double = 0
     
     override static func primaryKey() -> String {
         return "fileID"
@@ -169,13 +167,13 @@ class tableMetadata: Object {
     
     dynamic var account = ""
     dynamic var assetLocalIdentifier = ""
-    dynamic var cryptated : Bool = false
+    dynamic var cryptated: Bool = false
     dynamic var date = NSDate()
-    dynamic var directory : Bool = false
+    dynamic var directory: Bool = false
     dynamic var directoryID = ""
-    dynamic var errorPasscode : Bool = false
+    dynamic var errorPasscode: Bool = false
     dynamic var etag = ""
-    dynamic var favorite : Bool = false
+    dynamic var favorite: Bool = false
     dynamic var fileID = ""
     dynamic var fileName = ""
     dynamic var fileNameData = ""
@@ -192,7 +190,8 @@ class tableMetadata: Object {
     dynamic var sessionSelectorPost = ""
     dynamic var sessionTaskIdentifier : Int = -1
     dynamic var sessionTaskIdentifierPlist : Int = -1
-    dynamic var size : Double = 0
+    dynamic var size: Double = 0
+    dynamic var status: Double = 0
     dynamic var thumbnailExists : Bool = false
     dynamic var title = ""
     dynamic var type = ""
@@ -208,7 +207,9 @@ class tablePhotoLibrary: Object {
     
     dynamic var account = ""
     dynamic var assetLocalIdentifier = ""
-    dynamic var mediaType : Int = 0
+    dynamic var creationDate: NSDate? = nil
+    dynamic var modificationDate: NSDate? = nil
+    dynamic var mediaType: Int = 0
 
     override static func primaryKey() -> String {
         return "assetLocalIdentifier"

+ 20 - 33
iOSClient/Database/NCManageDatabase.swift

@@ -338,27 +338,6 @@ class NCManageDatabase: NSObject {
         }
     }
     
-    func setAccountAutoUploadDateAssetType(_ assetMediaType: PHAssetMediaType, assetDate: NSDate?) {
-
-        let realm = try! Realm()
-        
-        do {
-            try realm.write {
-            
-                let result = realm.objects(tableAccount.self).filter("active = true").first
-
-                if (assetMediaType == PHAssetMediaType.image && result != nil) {
-                result?.autoUploadDatePhoto = assetDate
-                }
-                if (assetMediaType == PHAssetMediaType.video && result != nil) {
-                    result?.autoUploadDateVideo = assetDate
-                }
-            }
-        } catch let error {
-            print("Could not write to database: ", error)
-        }
-    }
-    
     func setAccountAutoUploadFileName(_ fileName: String?) {
         
         let realm = try! Realm()
@@ -1887,15 +1866,29 @@ class NCManageDatabase: NSObject {
     //MARK: -
     //MARK: Table Photo Library
     
-    func addPhotoLibrary(_ photosVideos: [tablePhotoLibrary]) {
+    func addPhotoLibrary(_ assets: [PHAsset]) {
         
+        let tableAccount = self.getAccountActive()
+        if tableAccount == nil {
+            return
+        }
+
         let realm = try! Realm()
         
         do {
             try realm.write {
                 
-                for table in photosVideos {
-                    realm.add(table, update: true)
+                for asset in assets {
+                    
+                    let addRecord = tablePhotoLibrary()
+                    
+                    addRecord.account = tableAccount!.account
+                    addRecord.assetLocalIdentifier = asset.localIdentifier
+                    addRecord.creationDate = asset.creationDate! as NSDate
+                    addRecord.modificationDate = asset.modificationDate! as NSDate
+                    addRecord.mediaType = asset.mediaType.rawValue
+                    
+                    realm.add(addRecord, update: true)
                 }
             }
         } catch let error {
@@ -1916,15 +1909,15 @@ class NCManageDatabase: NSObject {
         
         if (image && video) {
          
-            predicate = NSPredicate(format: "account = %@ AND (mediaType = 0 || mediaType = 1)", tableAccount!.account)
+            predicate = NSPredicate(format: "account = %@ AND (mediaType = %i || mediaType = %i)", tableAccount!.account, PHAssetMediaType.image.rawValue, PHAssetMediaType.video.rawValue)
             
         } else if (image) {
             
-            predicate = NSPredicate(format: "account = %@ AND mediaType = 0", tableAccount!.account)
+            predicate = NSPredicate(format: "account = %@ AND mediaType = %i", tableAccount!.account, PHAssetMediaType.image.rawValue)
 
         } else if (video) {
             
-            predicate = NSPredicate(format: "account = %@ AND mediaType = 1", tableAccount!.account)
+            predicate = NSPredicate(format: "account = %@ AND mediaType = %i", tableAccount!.account, PHAssetMediaType.video.rawValue)
         }
         
         let results = realm.objects(tablePhotoLibrary.self).filter(predicate)
@@ -2264,12 +2257,6 @@ class NCManageDatabase: NSObject {
             if table.cameraUploadCreateSubfolder == 1 {
                 addAccount.autoUploadCreateSubfolder = true
             }
-            if table.cameraUploadDatePhoto != nil {
-                addAccount.autoUploadDatePhoto = table.cameraUploadDatePhoto! as NSDate
-            }
-            if table.cameraUploadDateVideo != nil {
-                addAccount.autoUploadDateVideo = table.cameraUploadDateVideo! as NSDate
-            }
             if table.cameraUploadFolderName != nil {
                 addAccount.autoUploadFileName = table.cameraUploadFolderName!
             }

+ 0 - 16
iOSClient/Favorites/CCFavorites.m

@@ -155,22 +155,6 @@
     return [[NSAttributedString alloc] initWithString:text attributes:attributes];
 }
 
-#pragma --------------------------------------------------------------------------------------------
-#pragma mark ===== UIDocumentInteractionController <delegate> =====
-#pragma --------------------------------------------------------------------------------------------
-
-- (void)documentInteractionControllerDidDismissOptionsMenu:(UIDocumentInteractionController *)controller
-{
-    tableAccount *tableAccount = [[NCManageDatabase sharedInstance] getAccountActive];
-    
-    // evitiamo il rimando della eventuale photo e/o video
-    if (tableAccount.autoUpload) {
-        
-        [[NCManageDatabase sharedInstance] setAccountAutoUploadDateAssetType:PHAssetMediaTypeImage assetDate:[NSDate date]];
-        [[NCManageDatabase sharedInstance] setAccountAutoUploadDateAssetType:PHAssetMediaTypeVideo assetDate:[NSDate date]];
-    }
-}
-
 #pragma --------------------------------------------------------------------------------------------
 #pragma mark ===== Delete <delegate> =====
 #pragma--------------------------------------------------------------------------------------------

+ 0 - 16
iOSClient/Local storage/CCLocalStorage.m

@@ -144,22 +144,6 @@
     return [[NSAttributedString alloc] initWithString:text attributes:attributes];
 }
 
-#pragma --------------------------------------------------------------------------------------------
-#pragma mark ===== UIDocumentInteractionController <delegate> =====
-#pragma --------------------------------------------------------------------------------------------
-
-- (void)documentInteractionControllerDidDismissOptionsMenu:(UIDocumentInteractionController *)controller
-{
-    tableAccount *tableAccount = [[NCManageDatabase sharedInstance] getAccountActive];
-    
-    // evitiamo il rimando della eventuale photo e/o video
-    if (tableAccount.autoUpload) {
-        
-        [[NCManageDatabase sharedInstance] setAccountAutoUploadDateAssetType:PHAssetMediaTypeImage assetDate:[NSDate date]];
-        [[NCManageDatabase sharedInstance] setAccountAutoUploadDateAssetType:PHAssetMediaTypeVideo assetDate:[NSDate date]];
-    }
-}
-
 #pragma --------------------------------------------------------------------------------------------
 #pragma mark ===== menu =====
 #pragma--------------------------------------------------------------------------------------------

+ 0 - 16
iOSClient/Main/CCDetail.m

@@ -198,22 +198,6 @@
         [app changeTheming:self];
 }
 
-#pragma --------------------------------------------------------------------------------------------
-#pragma mark ===== UIDocumentInteractionControllerDelegate =====
-#pragma --------------------------------------------------------------------------------------------
-
-- (void)documentInteractionControllerDidDismissOptionsMenu:(UIDocumentInteractionController *)controller
-{
-    tableAccount *tableAccount = [[NCManageDatabase sharedInstance] getAccountActive];
-    
-    // evitiamo il rimando della eventuale photo e/o video        
-    if (tableAccount.autoUpload) {
-        
-        [[NCManageDatabase sharedInstance] setAccountAutoUploadDateAssetType:PHAssetMediaTypeImage assetDate:[NSDate date]];
-        [[NCManageDatabase sharedInstance] setAccountAutoUploadDateAssetType:PHAssetMediaTypeVideo assetDate:[NSDate date]];
-    }
-}
-
 #pragma --------------------------------------------------------------------------------------------
 #pragma mark ===== View File  =====
 #pragma --------------------------------------------------------------------------------------------

+ 1 - 22
iOSClient/Main/CCMain.m

@@ -752,21 +752,6 @@
     }];
 }
 
-#pragma --------------------------------------------------------------------------------------------
-#pragma mark ===== UIDocumentInteractionControllerDelegate =====
-#pragma --------------------------------------------------------------------------------------------
-
-- (void)documentInteractionControllerDidDismissOptionsMenu:(UIDocumentInteractionController *)controller
-{
-    // evitiamo il rimando della eventuale photo e/o video
-    tableAccount *tableAccount = [[NCManageDatabase sharedInstance] getAccountActive];
-    if (tableAccount.autoUpload) {
-        
-        [[NCManageDatabase sharedInstance] setAccountAutoUploadDateAssetType:PHAssetMediaTypeImage assetDate:[NSDate date]];
-        [[NCManageDatabase sharedInstance] setAccountAutoUploadDateAssetType:PHAssetMediaTypeVideo assetDate:[NSDate date]];
-    }
-}
-
 #pragma --------------------------------------------------------------------------------------------
 #pragma mark ===== Create New (OpenModel) =====
 #pragma --------------------------------------------------------------------------------------------
@@ -1464,9 +1449,6 @@
         
         if ([metadata.typeFile isEqualToString: k_metadataTypeFile_image]) {
             
-            // evitiamo il rimando photo
-            [[NCManageDatabase sharedInstance] setAccountAutoUploadDateAssetType:PHAssetMediaTypeImage assetDate:[NSDate date]];
-
             UIImage *image = [UIImage imageWithContentsOfFile:file];
             
             if (image)
@@ -1476,10 +1458,7 @@
         }
         
         if ([metadata.typeFile isEqualToString: k_metadataTypeFile_video]) {
-            
-            // we avoid the cross-reference video
-            [[NCManageDatabase sharedInstance] setAccountAutoUploadDateAssetType:PHAssetMediaTypeVideo assetDate:[NSDate date]];
-            
+                        
             [[NSFileManager defaultManager] linkItemAtPath:file toPath:[NSTemporaryDirectory() stringByAppendingString:metadata.fileNamePrint] error:nil];
             
             if (UIVideoAtPathIsCompatibleWithSavedPhotosAlbum([NSTemporaryDirectory() stringByAppendingString:metadata.fileNamePrint])) {

+ 0 - 9
iOSClient/Photos/CCPhotos.m

@@ -329,15 +329,6 @@
                 
                 if (completed) {
                     
-                    [dataToShare enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
-                        
-                        if ([obj isKindOfClass:[UIImage class]])
-                            [[NCManageDatabase sharedInstance] setAccountAutoUploadDateAssetType:PHAssetMediaTypeImage assetDate:[NSDate date]];
-                        
-                        if ([obj isKindOfClass:[NSURL class]])
-                            [[NCManageDatabase sharedInstance] setAccountAutoUploadDateAssetType:PHAssetMediaTypeVideo assetDate:[NSDate date]];
-                    }];
-                    
                     [self performSelector:@selector(reloadCollection) withObject:nil];
                 }
             }];

+ 8 - 28
iOSClient/Settings/CCManageAutoUpload.m

@@ -200,7 +200,7 @@
 {
     [super formRowDescriptorValueHasChanged:rowDescriptor oldValue:oldValue newValue:newValue];
     
-    tableAccount *tableAccount = [[NCManageDatabase sharedInstance] getAccountActive];
+    tableAccount *account = [[NCManageDatabase sharedInstance] getAccountActive];
     
     if ([rowDescriptor.tag isEqualToString:@"autoUpload"]) {
         
@@ -217,24 +217,17 @@
             [[NCManageDatabase sharedInstance] setAccountAutoUploadDirectory:nil activeUrl:app.activeUrl];
             
             // verifichiamo che almeno uno dei servizi (foto video) siano attivi, in caso contrario attiviamo le foto
-            if (tableAccount.autoUploadPhoto == NO && tableAccount.autoUploadVideo == NO) {
+            if (account.autoUploadPhoto == NO && account.autoUploadVideo == NO) {
                 [[NCManageDatabase sharedInstance] setAccountAutoUploadFiled:@"autoUploadPhoto" state:YES];
                 [[NCManageDatabase sharedInstance] setAccountAutoUploadFiled:@"autoUploadVideo" state:YES];
             }
             
-            // Settings date
-            if (tableAccount.autoUploadPhoto)
-                [[NCManageDatabase sharedInstance] setAccountAutoUploadDateAssetType:PHAssetMediaTypeImage assetDate:[NSDate date]];
-            if (tableAccount.autoUploadVideo)
-                [[NCManageDatabase sharedInstance] setAccountAutoUploadDateAssetType:PHAssetMediaTypeVideo assetDate:[NSDate date]];
+            [[NCAutoUpload sharedInstance] alignPhotoLibrary];
             
         } else {
             
             [[NCManageDatabase sharedInstance] setAccountAutoUploadFiled:@"autoUpload" state:NO];
             [[NCManageDatabase sharedInstance] setAccountAutoUploadFiled:@"autoUploadFull" state:NO];
-            
-            [[NCManageDatabase sharedInstance] setAccountAutoUploadDateAssetType:PHAssetMediaTypeImage assetDate:nil];
-            [[NCManageDatabase sharedInstance] setAccountAutoUploadDateAssetType:PHAssetMediaTypeVideo assetDate:nil];
 
             // remove
             [[NCManageDatabase sharedInstance] clearTable:[tableAutoUpload class] account:app.activeAccount];
@@ -295,17 +288,10 @@
 
     if ([rowDescriptor.tag isEqualToString:@"autoUploadPhoto"]) {
         
-        if ([[rowDescriptor.value valueData] boolValue] == YES) {
-            
-            [[NCManageDatabase sharedInstance] setAccountAutoUploadDateAssetType:PHAssetMediaTypeImage assetDate:[NSDate date]];
-            
-        } else {
-            
-            [[NCManageDatabase sharedInstance] setAccountAutoUploadDateAssetType:PHAssetMediaTypeImage assetDate:nil];
-        }
-                
-        [[NCManageDatabase sharedInstance] setAccountAutoUploadFiled:@"autoUploadPhoto" state:[[rowDescriptor.value valueData] boolValue]];
+        if ([[rowDescriptor.value valueData] boolValue] == YES)
+            [[NCAutoUpload sharedInstance] alignPhotoLibrary];
         
+        [[NCManageDatabase sharedInstance] setAccountAutoUploadFiled:@"autoUploadPhoto" state:[[rowDescriptor.value valueData] boolValue]];
     }
     
     if ([rowDescriptor.tag isEqualToString:@"autoUploadWWAnPhoto"]) {
@@ -315,14 +301,8 @@
     
     if ([rowDescriptor.tag isEqualToString:@"autoUploadVideo"]) {
     
-        if ([[rowDescriptor.value valueData] boolValue] == YES) {
-                
-            [[NCManageDatabase sharedInstance] setAccountAutoUploadDateAssetType:PHAssetMediaTypeVideo assetDate:[NSDate date]];
-
-        } else {
-                
-            [[NCManageDatabase sharedInstance] setAccountAutoUploadDateAssetType:PHAssetMediaTypeVideo assetDate:nil];
-        }
+        if ([[rowDescriptor.value valueData] boolValue] == YES)
+            [[NCAutoUpload sharedInstance] alignPhotoLibrary];
             
         [[NCManageDatabase sharedInstance] setAccountAutoUploadFiled:@"autoUploadVideo" state:[[rowDescriptor.value valueData] boolValue]];
     }

+ 1 - 1
iOSClient/Utility/NCRequestAsset.h

@@ -39,7 +39,7 @@
 
 @protocol NCRequestAssetDelegate <NSObject>
 
-@optional - (void)addDatabaseAutoUpload:(CCMetadataNet *)metadataNet modificationDate:(NSDate *)modificationDate assetMediaType:(PHAssetMediaType)assetMediaType;
+@optional - (void)addDatabaseAutoUpload:(CCMetadataNet *)metadataNet asset:(PHAsset *)asset;
 
 @optional - (void)upload:(NSString *)fileName serverUrl:(NSString *)serverUrl cryptated:(BOOL)cryptated template:(BOOL)template onlyPlist:(BOOL)onlyPlist fileNameTemplate:(NSString *)fileNameTemplate assetLocalIdentifier:(NSString *)assetLocalIdentifier session:(NSString *)session taskStatus:(NSInteger)taskStatus selector:(NSString *)selector selectorPost:(NSString *)selectorPost errorCode:(NSInteger)errorCode delegate:(id)delegate;
 

+ 4 - 5
iOSClient/Utility/NCRequestAsset.m

@@ -32,7 +32,6 @@
 
     PHAsset *asset = result[0];
     PHAssetMediaType assetMediaType = asset.mediaType;
-    NSDate *modificationDate = asset.modificationDate;
     __block NSError *error = nil;
     
     // VIDEO
@@ -65,8 +64,8 @@
                             
                             //OK selectorUploadAutoUpload
                             if ([selector isEqualToString:selectorUploadAutoUpload]) {
-                                if ([self.delegate respondsToSelector:@selector(addDatabaseAutoUpload:modificationDate:assetMediaType:)])
-                                    [self.delegate addDatabaseAutoUpload:metadataNet modificationDate:modificationDate assetMediaType:assetMediaType];
+                                if ([self.delegate respondsToSelector:@selector(addDatabaseAutoUpload:asset:)])
+                                    [self.delegate addDatabaseAutoUpload:metadataNet asset:asset];
                             } else {
                                 if ([self.delegate respondsToSelector:@selector(upload:serverUrl:cryptated:template:onlyPlist:fileNameTemplate:assetLocalIdentifier:session:taskStatus:selector:selectorPost:errorCode:delegate:)])
                                     [self.delegate upload:fileName serverUrl:serverUrl cryptated:cryptated template:NO onlyPlist:NO fileNameTemplate:nil assetLocalIdentifier:assetLocalIdentifier session:session taskStatus:taskStatus selector:selector selectorPost:selectorPost errorCode:errorCode delegate:delegate];
@@ -152,8 +151,8 @@
                     
                     //OK selectorUploadAutoUpload
                     if ([selector isEqualToString:selectorUploadAutoUpload]) {
-                        if ([self.delegate respondsToSelector:@selector(addDatabaseAutoUpload:modificationDate:assetMediaType:)])
-                            [self.delegate addDatabaseAutoUpload:metadataNet modificationDate:modificationDate assetMediaType:assetMediaType];
+                        if ([self.delegate respondsToSelector:@selector(addDatabaseAutoUpload:asset:)])
+                            [self.delegate addDatabaseAutoUpload:metadataNet asset:asset];
                     } else {
                         if ([self.delegate respondsToSelector:@selector(upload:serverUrl:cryptated:template:onlyPlist:fileNameTemplate:assetLocalIdentifier:session:taskStatus:selector:selectorPost:errorCode:delegate:)])
                             [self.delegate upload:fileName serverUrl:serverUrl cryptated:cryptated template:NO onlyPlist:NO fileNameTemplate:nil assetLocalIdentifier:assetLocalIdentifier session:session taskStatus:taskStatus selector:selector selectorPost:selectorPost errorCode:errorCode delegate:delegate];