marinofaggiana 5 tahun lalu
induk
melakukan
17d6f4f14c

+ 2 - 2
iOSClient/Main/CCMain.m

@@ -833,12 +833,12 @@
 {
     NCPhotosPickerViewController *viewController = [[NCPhotosPickerViewController alloc] init:self maxSelectedAssets:100 singleSelectedMode:false];
     
-    [viewController openPhotosPickerViewControllerWithPhAssets:^(NSArray<PHAsset *> * _Nonnull assets) {
+    [viewController openPhotosPickerViewControllerWithPhAssets:^(NSArray<PHAsset *> * _Nullable assets, NSArray<NSURL *> * urls) {
         if (assets.count > 0) {
             dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 0.2 * NSEC_PER_SEC), dispatch_get_main_queue(), ^(void) {
                 NSString *serverUrl = [appDelegate getTabBarControllerActiveServerUrl];
                 
-                NCCreateFormUploadAssets *form = [[NCCreateFormUploadAssets alloc] initWithServerUrl:serverUrl assets:(NSMutableArray *)assets cryptated:NO session:k_upload_session delegate:self];
+                NCCreateFormUploadAssets *form = [[NCCreateFormUploadAssets alloc] initWithServerUrl:serverUrl assets:(NSMutableArray *)assets urls:(NSMutableArray *)urls cryptated:NO session:k_upload_session delegate:self];
                 
                 UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:form];
                 [navigationController setModalPresentationStyle:UIModalPresentationFormSheet];

+ 3 - 1
iOSClient/Main/Create cloud/NCCreateFormUploadAssets.swift

@@ -33,6 +33,7 @@ class NCCreateFormUploadAssets: XLFormViewController, NCSelectDelegate, PhotoEdi
     var serverUrl: String = ""
     var titleServerUrl: String?
     var assets = NSMutableArray()
+    var urls = NSMutableArray()
     var cryptated: Bool = false
     var session: String = ""
     weak var delegate: createFormUploadAssetsDelegate?
@@ -41,7 +42,7 @@ class NCCreateFormUploadAssets: XLFormViewController, NCSelectDelegate, PhotoEdi
     let targetSizeImagePreview = CGSize(width:100, height: 100)
     let appDelegate = UIApplication.shared.delegate as! AppDelegate
     
-    @objc convenience init(serverUrl : String, assets : NSMutableArray, cryptated : Bool, session : String, delegate: createFormUploadAssetsDelegate) {
+    @objc convenience init(serverUrl : String, assets : NSMutableArray, urls: NSMutableArray, cryptated : Bool, session : String, delegate: createFormUploadAssetsDelegate) {
         
         self.init()
         
@@ -53,6 +54,7 @@ class NCCreateFormUploadAssets: XLFormViewController, NCSelectDelegate, PhotoEdi
         
         self.serverUrl = serverUrl
         self.assets = assets
+        self.urls = urls
         self.cryptated = cryptated
         self.session = session
         self.delegate = delegate

+ 12 - 5
iOSClient/Main/NCPhotosPickerViewController.swift

@@ -37,9 +37,10 @@ class NCPhotosPickerViewController: NSObject {
         self.singleSelectedMode = singleSelectedMode
     }
     
-    @objc func openPhotosPickerViewController(phAssets: @escaping ([PHAsset]?) -> ()) {
+    @objc func openPhotosPickerViewController(phAssets: @escaping ([PHAsset]?, [URL]?) -> ()) {
         
         var selectedPhAssets = [PHAsset]()
+        var selectedUrls = [URL]()
         var configure = TLPhotosPickerConfigure()
         
         configure.cancelTitle = NSLocalizedString("_cancel_", comment: "")
@@ -55,15 +56,21 @@ class NCPhotosPickerViewController: NSObject {
             
             for asset: TLPHAsset in assets {
                 if asset.phAsset != nil {
-                    selectedPhAssets.append(asset.phAsset!)
+                    asset.tempCopyMediaFile(videoRequestOptions: nil, imageRequestOptions: nil, livePhotoRequestOptions: nil, exportPreset: AVAssetExportPresetHighestQuality, convertLivePhotosToJPG: false, progressBlock: { (progress) in }) { (url, contentType) in
+                        
+                        selectedPhAssets.append(asset.phAsset!)
+                        selectedUrls.append(url)
+                        
+                        if asset == assets.last {
+                            phAssets(selectedPhAssets, selectedUrls)
+                        }
+                    }
                 }
             }
             
-            phAssets(selectedPhAssets)
-            
         }) {
             
-            phAssets(nil)
+            phAssets(nil,nil)
         }
         
         viewController.didExceedMaximumNumberOfSelection = { (picker) in