marinofaggiana 4 years ago
parent
commit
80386afb5c

+ 1 - 1
iOSClient/CCGlobal.h

@@ -84,7 +84,7 @@
 
 // Database Realm
 #define k_databaseDefault                               @"nextcloud.realm"
-#define k_databaseSchemaVersion                         98
+#define k_databaseSchemaVersion                         99
 
 // Intro selector
 #define k_intro_login                                   0

+ 2 - 0
iOSClient/Database/NCDatabase.swift

@@ -357,6 +357,7 @@ class tableMedia: Object {
     @objc dynamic var creationDate = NSDate()
     @objc dynamic var date = NSDate()
     @objc dynamic var directory: Bool = false
+    @objc dynamic var deleteAssetLocalIdentifier: Bool = false
     @objc dynamic var e2eEncrypted: Bool = false
     @objc dynamic var edited: Bool = false
     @objc dynamic var etag = ""
@@ -402,6 +403,7 @@ class tableMetadata: Object {
     @objc dynamic var creationDate = NSDate()
     @objc dynamic var date = NSDate()
     @objc dynamic var directory: Bool = false
+    @objc dynamic var deleteAssetLocalIdentifier: Bool = false
     @objc dynamic var e2eEncrypted: Bool = false
     @objc dynamic var edited: Bool = false
     @objc dynamic var etag = ""

+ 2 - 1
iOSClient/Database/NCManageDatabase.swift

@@ -2538,7 +2538,7 @@ class NCManageDatabase: NSObject {
         realm.refresh()
         var assetLocalIdentifiers = [String]()
         
-        let results = realm.objects(tableMetadata.self).filter("account == %@ AND assetLocalIdentifier != '' AND session == '' AND sessionError == '' AND sessionSelector == %@", account, sessionSelector)
+        let results = realm.objects(tableMetadata.self).filter("account == %@ AND assetLocalIdentifier != '' AND deleteAssetLocalIdentifier == true AND sessionSelector == %@", account, sessionSelector)
         for result in results {
             assetLocalIdentifiers.append(result.assetLocalIdentifier)
         }
@@ -2557,6 +2557,7 @@ class NCManageDatabase: NSObject {
 
                 for result in results {
                     result.assetLocalIdentifier = ""
+                    result.deleteAssetLocalIdentifier = false
                 }
             }
         } catch let error {

+ 5 - 0
iOSClient/Networking/CCNetworking.m

@@ -955,6 +955,11 @@
         
     } else {
     
+        // Delete Asset
+        if ([CCUtility getDeleteAssetLocalIdentifiersforAutoUpload] && ![metadata.assetLocalIdentifier isEqualToString:@""] && [metadata.sessionSelector isEqualToString:selectorUploadAutoUpload]) {
+            metadata.deleteAssetLocalIdentifier = true;
+        }
+        
         // Edited file, remove tempocId and adjust the directory provider storage
         if (metadata.edited) {
             

+ 3 - 0
iOSClient/Utility/CCUtility.h

@@ -177,6 +177,9 @@
 + (BOOL)getLivePhoto;
 + (void)setLivePhoto:(BOOL)set;
 
++ (BOOL)getDeleteAssetLocalIdentifiersforAutoUpload;
++ (void)setDeleteAssetLocalIdentifiersforAutoUpload:(BOOL)set;
+
 // ===== Varius =====
 
 + (BOOL)addSkipBackupAttributeToItemAtURL:(NSURL *)URL;

+ 10 - 0
iOSClient/Utility/CCUtility.m

@@ -706,6 +706,16 @@
     [UICKeyChainStore setString:sSet forKey:@"livePhoto" service:k_serviceShareKeyChain];
 }
 
++ (BOOL)getDeleteAssetLocalIdentifiersforAutoUpload
+{
+    return [[UICKeyChainStore stringForKey:@"deleteAssetLocalIdentifiersforAutoUpload" service:k_serviceShareKeyChain] boolValue];
+}
+
++ (void)setDeleteAssetLocalIdentifiersforAutoUpload:(BOOL)set
+{
+    NSString *sSet = (set) ? @"true" : @"false";
+    [UICKeyChainStore setString:sSet forKey:@"deleteAssetLocalIdentifiersforAutoUpload" service:k_serviceShareKeyChain];
+}
 
 #pragma --------------------------------------------------------------------------------------------
 #pragma mark ===== Various =====