Browse Source

Build 2.17.00036

Marino Faggiana 8 years ago
parent
commit
e222f9e96f
3 changed files with 29 additions and 13 deletions
  1. 8 5
      iOSClient/AppDelegate.m
  2. 3 2
      iOSClient/FileSystem/CCCoreData.h
  3. 18 6
      iOSClient/FileSystem/CCCoreData.m

+ 8 - 5
iOSClient/AppDelegate.m

@@ -1253,8 +1253,8 @@
         }
     }
     
-    // Add Network queue
-    CCMetadataNet *metadataNet = [CCCoreData getTableAutomaticUploadForAccount:self.activeAccount selector:selector context:nil];
+    // Get Record on Table Automatic Upload
+    CCMetadataNet *metadataNet = [CCCoreData getTableAutomaticUploadForAccount:self.activeAccount selector:selector];
 
     // For UploadAutomatic create the folder for Photos & if request the subfolders
     if ([selector isEqualToString:selectorUploadAutomatic] && metadataNet) {
@@ -1266,11 +1266,14 @@
 
         if (!result.count) {
            [CCCoreData addActivityClient:metadataNet.fileName fileID:metadataNet.identifier action:k_activityDebugActionUpload selector:selector note:@"Internal error image/video not found" type:k_activityVerboseDefault verbose:k_activityVerboseHigh account:_activeAccount activeUrl:_activeUrl];
+            [CCCoreData unlockTableAutomaticUploadForAccount:_activeAccount identifier:metadataNet.identifier];
             return;
         }
         
-        if(![self createFolderSubFolderAutomaticUploadFolderPhotos:folderPhotos useSubFolder:useSubFolder assets:[[NSArray alloc] initWithObjects:result[0], nil] selector:selectorUploadAutomatic])
+        if(![self createFolderSubFolderAutomaticUploadFolderPhotos:folderPhotos useSubFolder:useSubFolder assets:[[NSArray alloc] initWithObjects:result[0], nil] selector:selectorUploadAutomatic]) {
+            [CCCoreData unlockTableAutomaticUploadForAccount:_activeAccount identifier:metadataNet.identifier];
             return;
+        }
     }
     
     if (metadataNet) {
@@ -1284,8 +1287,8 @@
         
         [self addNetworkingOperationQueue:queue delegate:app.activeMain metadataNet:metadataNet];
         
-        // Delete record
-        [CCCoreData deleteTableAutomaticUploadForAccount:self.activeAccount identifier:metadataNet.identifier context:nil];
+        // Delete record on Table Automatic Upload
+        [CCCoreData deleteTableAutomaticUploadForAccount:self.activeAccount identifier:metadataNet.identifier];
     }
 }
 

+ 3 - 2
iOSClient/FileSystem/CCCoreData.h

@@ -190,8 +190,9 @@
 // ===== Automatic Upload =====
 
 + (BOOL)addTableAutomaticUpload:(CCMetadataNet *)metadataNet account:(NSString *)account;
-+ (CCMetadataNet *)getTableAutomaticUploadForAccount:(NSString *)account selector:(NSString *)selector context:(NSManagedObjectContext *)context;
-+ (void)deleteTableAutomaticUploadForAccount:(NSString *)account identifier:(NSString *)identifier context:(NSManagedObjectContext *)context;
++ (CCMetadataNet *)getTableAutomaticUploadForAccount:(NSString *)account selector:(NSString *)selector;
++ (void)unlockTableAutomaticUploadForAccount:(NSString *)account identifier:(NSString *)identifier;
++ (void)deleteTableAutomaticUploadForAccount:(NSString *)account identifier:(NSString *)identifier;
 + (NSUInteger)countTableAutomaticUploadForAccount:(NSString *)account selector:(NSString *)selector;
 
 // ===== GPS =====

+ 18 - 6
iOSClient/FileSystem/CCCoreData.m

@@ -1529,10 +1529,9 @@
     return YES;
 }
 
-+ (CCMetadataNet *)getTableAutomaticUploadForAccount:(NSString *)account selector:(NSString *)selector context:(NSManagedObjectContext *)context
++ (CCMetadataNet *)getTableAutomaticUploadForAccount:(NSString *)account selector:(NSString *)selector
 {
-    if (context == nil)
-        context = [NSManagedObjectContext MR_context];
+    NSManagedObjectContext *context = [NSManagedObjectContext MR_context];
     
     TableAutomaticUpload *record = [TableAutomaticUpload MR_findFirstWithPredicate:[NSPredicate predicateWithFormat:@"(account == %@) AND (selector == %@) AND (lock == 0)", account, selector] inContext:context];
     
@@ -1560,10 +1559,23 @@
     return nil;
 }
 
-+ (void)deleteTableAutomaticUploadForAccount:(NSString *)account identifier:(NSString *)identifier context:(NSManagedObjectContext *)context
++ (void)unlockTableAutomaticUploadForAccount:(NSString *)account identifier:(NSString *)identifier
 {
-    if (context == nil)
-        context = [NSManagedObjectContext MR_context];
+    NSManagedObjectContext *context = [NSManagedObjectContext MR_context];
+    
+    TableAutomaticUpload *record = [TableAutomaticUpload MR_findFirstWithPredicate:[NSPredicate predicateWithFormat:@"(account == %@) AND (identifier == %@)", account, identifier] inContext:context];
+    
+    if (record) {
+        
+        // UN-LOCK
+        record.lock = [NSNumber numberWithBool:NO];
+        [context MR_saveToPersistentStoreAndWait];
+    }
+}
+
++ (void)deleteTableAutomaticUploadForAccount:(NSString *)account identifier:(NSString *)identifier
+{
+    NSManagedObjectContext *context = [NSManagedObjectContext MR_context];
     
     TableAutomaticUpload *record = [TableAutomaticUpload MR_findFirstWithPredicate:[NSPredicate predicateWithFormat:@"(account == %@) AND (identifier == %@)", account, identifier] inContext:context];