Browse Source

Fix Share ext. image filePathExtension + fix large image rename preview

Signed-off-by: Henrik Storch <henrik.storch@nextcloud.com>
Henrik Storch 3 years ago
parent
commit
b10287be7e
2 changed files with 10 additions and 7 deletions
  1. 4 5
      Share/NCShareExtension+Files.swift
  2. 6 2
      Share/NCShareExtension+NCDelegate.swift

+ 4 - 5
Share/NCShareExtension+Files.swift

@@ -88,7 +88,6 @@ class NCFilesExtensionHandler {
     var itemsProvider: [NSItemProvider] = []
     var counter = 0
     lazy var filesName: [String] = []
-    var completion: ([String]) -> Void
     let dateFormatter: DateFormatter = {
         let formatter = DateFormatter()
         formatter.dateFormat = "yyyy-MM-dd HH-mm-ss-"
@@ -98,7 +97,6 @@ class NCFilesExtensionHandler {
     @discardableResult
     init(items: [NSExtensionItem], completion: @escaping ([String]) -> Void) {
         CCUtility.emptyTemporaryDirectory()
-        self.completion = completion
         self.itemsProvider = items.compactMap({ $0.attachments }).flatMap { $0.filter({
             $0.hasItemConformingToTypeIdentifier(kUTTypeItem as String) || $0.hasItemConformingToTypeIdentifier("public.url")
         }) }
@@ -136,11 +134,12 @@ class NCFilesExtensionHandler {
 
     // Image
     func getItem(image: UIImage, fileName: String) -> String? {
-        let filenamePath = NSTemporaryDirectory() + fileName
+        var fileUrl = URL(fileURLWithPath: NSTemporaryDirectory() + fileName)
+        if fileUrl.pathExtension.isEmpty { fileUrl.appendPathExtension("png") }
         guard let pngImageData = image.pngData(),
-              (try? pngImageData.write(to: URL(fileURLWithPath: filenamePath), options: [.atomic])) != nil
+              (try? pngImageData.write(to: fileUrl, options: [.atomic])) != nil
         else { return nil }
-        return fileName
+        return fileUrl.lastPathComponent
     }
 
     // URL

+ 6 - 2
Share/NCShareExtension+NCDelegate.swift

@@ -123,8 +123,12 @@ extension NCShareExtension: NCShareCellDelegate, NCRenameFileDelegate, NCListCel
         let resultInternalType = NCCommunicationCommon.shared.getInternalType(fileName: fileName, mimeType: "", directory: false)
         vcRename.delegate = self
         vcRename.fileName = fileName
-        let img = UIImage(contentsOfFile: (NSTemporaryDirectory() + fileName)) ?? UIImage(named: resultInternalType.iconName) ?? NCBrandColor.cacheImages.file
-        vcRename.imagePreview = img
+        if let previewImage = UIImage.downsample(imageAt: URL(fileURLWithPath: NSTemporaryDirectory() + fileName), to: CGSize(width: 140, height: 140)) {
+            vcRename.imagePreview = previewImage
+        } else {
+            vcRename.imagePreview = UIImage(named: resultInternalType.iconName) ?? NCBrandColor.cacheImages.file
+        }
+
         let popup = NCPopupViewController(contentController: vcRename, popupWidth: vcRename.width, popupHeight: vcRename.height)
 
         self.present(popup, animated: true)