Marino Faggiana 6 жил өмнө
parent
commit
0cbe697aae

+ 1 - 4
iOSClient/AppDelegate.m

@@ -94,11 +94,8 @@
     if (![[NSFileManager defaultManager] fileExistsAtPath: path])
         [[NSFileManager defaultManager] createDirectoryAtPath:path withIntermediateDirectories:YES attributes:nil error:nil];
     
-    // create Directory Scan + ScanSelect
+    // create Directory Scan
     path = [[dirGroup URLByAppendingPathComponent:k_appScan] path];
-    if (![[NSFileManager defaultManager] fileExistsAtPath:path])
-        [[NSFileManager defaultManager] createDirectoryAtPath:path withIntermediateDirectories:YES attributes:nil error:nil];
-    path = [[dirGroup URLByAppendingPathComponent:k_appScanSelect] path];
     if (![[NSFileManager defaultManager] fileExistsAtPath:path])
         [[NSFileManager defaultManager] createDirectoryAtPath:path withIntermediateDirectories:YES attributes:nil error:nil];
     

+ 0 - 1
iOSClient/CCGlobal.h

@@ -45,7 +45,6 @@
 #define k_appUserData                                   @"Library/Application Support/UserData"
 #define k_appCertificates                               @"Library/Application Support/Certificates"
 #define k_appScan                                       @"Library/Application Support/Scan"
-#define k_appScanSelect                                 @"Library/Application Support/Scan/Select"
 
 #define k_DirectoryProviderStorage                      @"File Provider Storage"
 

+ 5 - 12
iOSClient/Create/CCCreateCloud.swift

@@ -685,12 +685,12 @@ class CreateFormUploadScanDocument: XLFormViewController, CCMoveDelegate {
     
     var serverUrl = ""
     var titleServerUrl = ""
-    var arrayFileName = [String]()
+    var arrayImages = [UIImage]()
     var fileName = "scan.pdf"
     
     let appDelegate = UIApplication.shared.delegate as! AppDelegate
     
-    convenience init(serverUrl: String, arrayFileName: [String]) {
+    convenience init(serverUrl: String, arrayImages: [UIImage]) {
         
         self.init()
         
@@ -701,7 +701,7 @@ class CreateFormUploadScanDocument: XLFormViewController, CCMoveDelegate {
         }
         
         self.serverUrl = serverUrl
-        self.arrayFileName = arrayFileName
+        self.arrayImages = arrayImages
         
         initializeForm()
     }
@@ -865,9 +865,8 @@ class CreateFormUploadScanDocument: XLFormViewController, CCMoveDelegate {
         }
         
         //Generate PDF
-        for fileNameImage in self.arrayFileName {
-            let fileNameImagePath = CCUtility.getDirectoryScanSelect() + "/" + fileNameImage
-            let page = PDFPage.imagePath(fileNameImagePath)
+        for image in self.arrayImages {
+            let page = PDFPage.image(image)
             pdfPages.append(page)
         }
         
@@ -878,12 +877,6 @@ class CreateFormUploadScanDocument: XLFormViewController, CCMoveDelegate {
             return
         }
         
-        //Remove images processed
-        for fileNameImage in self.arrayFileName {
-            let fileNameImagePath = CCUtility.getDirectoryScanSelect() + "/" + fileNameImage
-            CCUtility.removeFile(atPath: fileNameImagePath)
-        }
-        
         //Remove plist in reader for cache issue
         //let filePlistReader = CCUtility.getDirectoryReaderMetadata() + "/" + (fileNameSave as NSString).deletingPathExtension + ".plist"
         //CCUtility.removeFile(atPath: filePlistReader)

+ 57 - 57
iOSClient/Scan/ScanCollectionView.swift

@@ -28,14 +28,15 @@ import UIKit
 class DragDropViewController: UIViewController {
     
     //MARK: Private Properties
+    
     //Data Source for collectionViewSource
     private var itemsSource = [String]()
     
     //Data Source for collectionViewDestination
-    private var itemsDestination = [String]()
+    private var imagesDestination = [UIImage]()
 
     //AppDelegate
-    let appDelegate = UIApplication.shared.delegate as! AppDelegate
+    private let appDelegate = UIApplication.shared.delegate as! AppDelegate
 
     //MARK: Outlets
     @IBOutlet weak var collectionViewSource: UICollectionView!
@@ -91,8 +92,8 @@ class DragDropViewController: UIViewController {
     
     @IBAction func saveAction(sender: UIBarButtonItem) {
         
-        if itemsDestination.count > 0 {
-            let formViewController = CreateFormUploadScanDocument.init(serverUrl: appDelegate.activeMain.serverUrl, arrayFileName: self.itemsDestination)
+        if imagesDestination.count > 0 {
+            let formViewController = CreateFormUploadScanDocument.init(serverUrl: appDelegate.activeMain.serverUrl, arrayImages: self.imagesDestination)
             self.navigationController?.pushViewController(formViewController, animated: true)
         }
     }
@@ -137,6 +138,7 @@ class DragDropViewController: UIViewController {
     ///   - coordinator: coordinator obtained from performDropWith: UICollectionViewDropDelegate method
     ///   - destinationIndexPath: indexpath of the collection view where the user drops the element
     ///   - collectionView: collectionView in which reordering needs to be done.
+    
     private func reorderItems(coordinator: UICollectionViewDropCoordinator, destinationIndexPath: IndexPath, collectionView: UICollectionView) {
         
         let items = coordinator.items
@@ -153,8 +155,8 @@ class DragDropViewController: UIViewController {
                 
                 if collectionView === self.collectionViewDestination {
                     
-                    self.itemsDestination.remove(at: sourceIndexPath.row)
-                    self.itemsDestination.insert(item.dragItem.localObject as! String, at: dIndexPath.row)
+                    self.imagesDestination.remove(at: sourceIndexPath.row)
+                    self.imagesDestination.insert(item.dragItem.localObject as! UIImage, at: dIndexPath.row)
                     
                 } else {
                     
@@ -176,6 +178,7 @@ class DragDropViewController: UIViewController {
     ///   - coordinator: coordinator obtained from performDropWith: UICollectionViewDropDelegate method
     ///   - destinationIndexPath: indexpath of the collection view where the user drops the element
     ///   - collectionView: collectionView in which reordering needs to be done.
+    
     private func copyItems(coordinator: UICollectionViewDropCoordinator, destinationIndexPath: IndexPath, collectionView: UICollectionView)
     {
         collectionView.performBatchUpdates({
@@ -188,9 +191,8 @@ class DragDropViewController: UIViewController {
                 
                 if collectionView === self.collectionViewDestination {
                     
-                    let fileName = item.dragItem.localObject as! String
-                    let fileNamePathAt = CCUtility.getDirectoryScan() + "/" + fileName
-                    let fileNamePathTo = CCUtility.getDirectoryScanSelect() + "/" + fileName
+                    let fileName = item.dragItem.localObject as! NSString
+                    let fileNamePathAt = CCUtility.getDirectoryScan() + "/" + (fileName as String)
                     
                     guard let data = try? Data(contentsOf: fileNamePathAt.url) else {
                         return
@@ -202,19 +204,14 @@ class DragDropViewController: UIViewController {
                         return
                     }
                     
-                    let imageData = UIImageJPEGRepresentation(imageFilter, 0.5)!
-                    
-                    do {
-                        try imageData.write(to: fileNamePathTo.url)
-                    } catch {
-                        return
-                    }
-                    
-                    self.itemsDestination.insert(item.dragItem.localObject as! String, at: indexPath.row)
+                    self.imagesDestination.insert(imageFilter, at: indexPath.row)
                     
                 } else {
                     
-                    self.itemsSource.insert(item.dragItem.localObject as! String, at: indexPath.row)
+                    // NOT PERMITTED
+                    //self.itemsSource.insert(item.dragItem.localObject as! String, at: indexPath.row)
+                    
+                    return
                 }
                 
                 indexPaths.append(indexPath)
@@ -233,7 +230,7 @@ extension DragDropViewController : UICollectionViewDataSource {
     
     func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
         
-        return collectionView == self.collectionViewSource ? self.itemsSource.count : self.itemsDestination.count
+        return collectionView == self.collectionViewSource ? self.itemsSource.count : self.imagesDestination.count
     }
     
     func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
@@ -258,15 +255,7 @@ extension DragDropViewController : UICollectionViewDataSource {
             
             let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "cell2", for: indexPath) as! ScanCell
             
-            let fileNamePath = CCUtility.getDirectoryScan() + "/" + self.itemsDestination[indexPath.row]
-            
-            guard let data = try? Data(contentsOf: fileNamePath.url) else {
-                return cell
-            }
-            
-            guard let image = UIImage(data: data) else {
-                return cell
-            }
+            let image = self.imagesDestination[indexPath.row]
             
             cell.customImageView?.image = self.filter(image: image)
             cell.customLabel.text = NSLocalizedString("_scan_document_pdf_page_", comment: "") + " " + "\(indexPath.row+1)"
@@ -294,19 +283,8 @@ extension DragDropViewController : UICollectionViewDataSource {
         let buttonPosition:CGPoint =  sender.convert(.zero, to: self.collectionViewDestination)
         let indexPath:IndexPath = self.collectionViewDestination.indexPathForItem(at: buttonPosition)!
         
-        // Remove file only if exist 1 item
-        var cont = 0
-        for item in itemsDestination {
-            if item == self.itemsDestination[indexPath.row] {
-                cont += 1
-            }
-        }
-        
-        if cont == 1 {
-            let fileNameAtPath = CCUtility.getDirectoryScanSelect() + "/" + self.itemsDestination[indexPath.row]
-            CCUtility.removeFile(atPath: fileNameAtPath)
-        }
-        self.itemsDestination.remove(at: indexPath.row)
+       
+        self.imagesDestination.remove(at: indexPath.row)
         
         self.collectionViewDestination.reloadData()
     }
@@ -320,24 +298,46 @@ extension DragDropViewController : UICollectionViewDragDelegate
 {
     func collectionView(_ collectionView: UICollectionView, itemsForBeginning session: UIDragSession, at indexPath: IndexPath) -> [UIDragItem] {
         
-        let item = collectionView == collectionViewSource ? self.itemsSource[indexPath.row] : self.itemsDestination[indexPath.row]
-        let itemProvider = NSItemProvider(object: item as NSString)
-        let dragItem = UIDragItem(itemProvider: itemProvider)
-        
-        dragItem.localObject = item
-        
-        return [dragItem]
+        if collectionView == self.collectionViewSource {
+            let item = self.itemsSource[indexPath.row]
+            let itemProvider = NSItemProvider(object: item as NSString)
+            let dragItem = UIDragItem(itemProvider: itemProvider)
+
+            dragItem.localObject = item
+
+            return [dragItem]
+
+        } else {
+            let item = self.imagesDestination[indexPath.row]
+            let itemProvider = NSItemProvider(object: item as UIImage)
+            let dragItem = UIDragItem(itemProvider: itemProvider)
+
+            dragItem.localObject = item
+            
+            return [dragItem]
+        }
     }
     
     func collectionView(_ collectionView: UICollectionView, itemsForAddingTo session: UIDragSession, at indexPath: IndexPath, point: CGPoint) -> [UIDragItem] {
         
-        let item = collectionView == collectionViewSource ? self.itemsSource[indexPath.row] : self.itemsDestination[indexPath.row]
-        let itemProvider = NSItemProvider(object: item as NSString)
-        let dragItem = UIDragItem(itemProvider: itemProvider)
-        
-        dragItem.localObject = item
-        
-        return [dragItem]
+        if collectionView == self.collectionViewSource {
+            let item = self.itemsSource[indexPath.row]
+            let itemProvider = NSItemProvider(object: item as NSString)
+            let dragItem = UIDragItem(itemProvider: itemProvider)
+            
+            dragItem.localObject = item
+            
+            return [dragItem]
+            
+        } else {
+            let item = self.imagesDestination[indexPath.row]
+            let itemProvider = NSItemProvider(object: item as UIImage)
+            let dragItem = UIDragItem(itemProvider: itemProvider)
+            
+            dragItem.localObject = item
+            
+            return [dragItem]
+        }
     }
     
     func collectionView(_ collectionView: UICollectionView, dragPreviewParametersForItemAt indexPath: IndexPath) -> UIDragPreviewParameters? {
@@ -361,7 +361,7 @@ extension DragDropViewController : UICollectionViewDropDelegate {
     
     func collectionView(_ collectionView: UICollectionView, canHandle session: UIDropSession) -> Bool {
         
-        return session.canLoadObjects(ofClass: NSString.self)
+        return true //session.canLoadObjects(ofClass: NSString.self)
     }
     
     func collectionView(_ collectionView: UICollectionView, dropSessionDidUpdate session: UIDropSession, withDestinationIndexPath destinationIndexPath: IndexPath?) -> UICollectionViewDropProposal {

+ 0 - 1
iOSClient/Utility/CCUtility.h

@@ -202,7 +202,6 @@
 + (BOOL)isDocumentModifiableExtension:(NSString *)fileExtension;
 
 + (NSString *)getDirectoryScan;
-+ (NSString *)getDirectoryScanSelect;
 
 // ===== E2E Encrypted =====
 

+ 0 - 10
iOSClient/Utility/CCUtility.m

@@ -1066,16 +1066,6 @@
     return path;
 }
 
-+ (NSString *)getDirectoryScanSelect
-{
-    NSString *path = [[[CCUtility getDirectoryGroup] URLByAppendingPathComponent:k_appScanSelect] path];
-    
-    if (![[NSFileManager defaultManager] fileExistsAtPath:path])
-        [[NSFileManager defaultManager] createDirectoryAtPath:path withIntermediateDirectories:YES attributes:nil error:nil];
-    
-    return path;
-}
-
 #pragma --------------------------------------------------------------------------------------------
 #pragma mark ===== E2E Encrypted =====
 #pragma --------------------------------------------------------------------------------------------