Browse Source

fix create subfolder from asset

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>
Marino Faggiana 2 years ago
parent
commit
e970c14a68

+ 2 - 2
Nextcloud.xcodeproj/project.pbxproj

@@ -3607,7 +3607,7 @@
 				CLANG_WARN_UNREACHABLE_CODE = YES;
 				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
 				COPY_PHASE_STRIP = NO;
-				CURRENT_PROJECT_VERSION = 5;
+				CURRENT_PROJECT_VERSION = 6;
 				DEVELOPMENT_TEAM = NKUJUXUJ3B;
 				ENABLE_STRICT_OBJC_MSGSEND = YES;
 				ENABLE_TESTABILITY = YES;
@@ -3670,7 +3670,7 @@
 				CLANG_WARN_UNREACHABLE_CODE = YES;
 				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
 				COPY_PHASE_STRIP = NO;
-				CURRENT_PROJECT_VERSION = 5;
+				CURRENT_PROJECT_VERSION = 6;
 				DEVELOPMENT_TEAM = NKUJUXUJ3B;
 				ENABLE_STRICT_OBJC_MSGSEND = YES;
 				ENABLE_TESTABILITY = YES;

+ 23 - 3
iOSClient/Networking/NCNetworking.swift

@@ -1012,9 +1012,9 @@ import Photos
         var result = createFolderWithSemaphore(fileName: fileName, serverUrl: serverUrl, account: account, urlBase: urlBase)
 
         if useSubFolder && result {
-            for dateSubFolder in CCUtility.createNameSubFolder(assets) {
-                let fileName = (dateSubFolder as! NSString).lastPathComponent
-                let serverUrl = ((autoUploadPath + "/" + (dateSubFolder as! String)) as NSString).deletingLastPathComponent
+            for dateSubFolder in createNameSubFolder(assets: assets) {
+                let fileName = (dateSubFolder as NSString).lastPathComponent
+                let serverUrl = ((autoUploadPath + "/" + dateSubFolder) as NSString).deletingLastPathComponent
                 result = createFolderWithSemaphore(fileName: fileName, serverUrl: serverUrl, account: account, urlBase: urlBase)
                 if !result { break }
             }
@@ -1037,6 +1037,26 @@ import Photos
         return result
     }
 
+    func createNameSubFolder(assets: [PHAsset]) -> [String] {
+
+        var datesSubFolder: [String] = []
+        let dateFormatter = DateFormatter()
+
+        for asset in assets {
+            var date = Date()
+            if let assetDate = asset.creationDate {
+                date = assetDate
+            }
+            dateFormatter.dateFormat = "yyyy"
+            let year = dateFormatter.string(from: date)
+            dateFormatter.dateFormat = "MM"
+            let month = dateFormatter.string(from: date)
+            datesSubFolder.append("\(year)/\(month)")
+        }
+
+        return datesSubFolder
+    }
+
     // MARK: - WebDav Delete
 
     @objc func deleteMetadata(_ metadata: tableMetadata, onlyLocalCache: Bool, completion: @escaping (_ error: NKError) -> Void) {

+ 0 - 1
iOSClient/Utility/CCUtility.h

@@ -234,7 +234,6 @@
 
 + (NSString *)returnPathfromServerUrl:(NSString *)serverUrl urlBase:(NSString *)urlBase account:(NSString *)account;
 + (NSString *)returnFileNamePathFromFileName:(NSString *)metadataFileName serverUrl:(NSString *)serverUrl urlBase:(NSString *)urlBase account:(NSString *)account;
-+ (NSArray *)createNameSubFolder:(NSArray *)assets;
 
 + (NSString *)getDirectoryScan;
 

+ 0 - 24
iOSClient/Utility/CCUtility.m

@@ -1267,30 +1267,6 @@
     return fileName;
 }
 
-+ (NSArray *)createNameSubFolder:(NSArray *)assets
-{
-    NSMutableOrderedSet *datesSubFolder = [NSMutableOrderedSet new];
-    
-    for (PHAsset *asset in assets) {
-        
-        NSDate *assetDate = asset.creationDate;
-        
-        NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
-        [formatter setDateFormat:@"yyyy"];
-        NSString *yearString = [formatter stringFromDate:assetDate];
-        if (yearString)
-            [datesSubFolder addObject:yearString];
-        
-        [formatter setDateFormat:@"MM"];
-        NSString *monthString = [formatter stringFromDate:assetDate];
-        monthString = [NSString stringWithFormat:@"%@/%@", yearString, monthString];
-        if (monthString)
-            [datesSubFolder addObject:monthString];
-    }
-    
-    return (NSArray *)datesSubFolder;
-}
-
 + (NSString *)getMimeType:(NSString *)fileNameView
 {
     CFStringRef fileUTI = nil;