Sfoglia il codice sorgente

add video as drafts

cyberta 4 anni fa
parent
commit
bc00d7db7e

+ 14 - 4
deltachat-ios/Chat/ChatViewController.swift

@@ -927,6 +927,14 @@ class ChatViewController: UITableViewController {
         self.messageInputBar.inputTextView.becomeFirstResponder()
         self.messageInputBar.inputTextView.becomeFirstResponder()
     }
     }
 
 
+    private func stageVideo(url: NSURL) {
+        DispatchQueue.main.async {
+            self.draft.setAttachment(viewType: DC_MSG_VIDEO, path: url.relativePath)
+            self.configureDraftArea(draft: self.draft)
+            self.messageInputBar.inputTextView.becomeFirstResponder()
+        }
+    }
+
     private func stageImage(url: NSURL) {
     private func stageImage(url: NSURL) {
         if url.pathExtension == "gif" {
         if url.pathExtension == "gif" {
             stageAnimatedImage(url: url)
             stageAnimatedImage(url: url)
@@ -963,6 +971,8 @@ class ChatViewController: UITableViewController {
         }
         }
     }
     }
 
 
+
+
     private func sendImage(_ image: UIImage, message: String? = nil) {
     private func sendImage(_ image: UIImage, message: String? = nil) {
         DispatchQueue.global().async {
         DispatchQueue.global().async {
             if let path = DcUtils.saveImage(image: image) {
             if let path = DcUtils.saveImage(image: image) {
@@ -1000,13 +1010,13 @@ class ChatViewController: UITableViewController {
         }
         }
     }
     }
 
 
-    private func sendVideo(url: NSURL) {
+ /*   private func sendVideo(url: NSURL) {
         DispatchQueue.global().async {
         DispatchQueue.global().async {
             let msg = DcMsg(viewType: DC_MSG_VIDEO)
             let msg = DcMsg(viewType: DC_MSG_VIDEO)
             msg.setFile(filepath: url.relativePath, mimeType: "video/mp4")
             msg.setFile(filepath: url.relativePath, mimeType: "video/mp4")
             msg.sendInChat(id: self.chatId)
             msg.sendInChat(id: self.chatId)
         }
         }
-    }
+    } */
 
 
     /*private func sendImage(url: NSURL) {
     /*private func sendImage(url: NSURL) {
         if url.pathExtension == "gif" {
         if url.pathExtension == "gif" {
@@ -1191,7 +1201,7 @@ extension ChatViewController: BaseMessageCellDelegate {
 // MARK: - MediaPickerDelegate
 // MARK: - MediaPickerDelegate
 extension ChatViewController: MediaPickerDelegate {
 extension ChatViewController: MediaPickerDelegate {
     func onVideoSelected(url: NSURL) {
     func onVideoSelected(url: NSURL) {
-        sendVideo(url: url)
+        stageVideo(url: url)
     }
     }
 
 
     func onImageSelected(url: NSURL) {
     func onImageSelected(url: NSURL) {
@@ -1219,7 +1229,7 @@ extension ChatViewController: InputBarAccessoryViewDelegate {
             .trimmingCharacters(in: .whitespacesAndNewlines)
             .trimmingCharacters(in: .whitespacesAndNewlines)
         if let filePath = draft.draftAttachment, let viewType = draft.draftViewType {
         if let filePath = draft.draftAttachment, let viewType = draft.draftViewType {
             switch viewType {
             switch viewType {
-            case DC_MSG_GIF, DC_MSG_IMAGE, DC_MSG_FILE:
+            case DC_MSG_GIF, DC_MSG_IMAGE, DC_MSG_FILE, DC_MSG_VIDEO:
                 self.sendAttachmentMessage(viewType: viewType, filePath: filePath, message: trimmedText, quoteMessage: draft.quoteMessage)
                 self.sendAttachmentMessage(viewType: viewType, filePath: filePath, message: trimmedText, quoteMessage: draft.quoteMessage)
             default:
             default:
                 logger.warning("Unsupported viewType for drafted messages.")
                 logger.warning("Unsupported viewType for drafted messages.")

+ 12 - 0
deltachat-ios/Chat/Views/MediaPreview.swift

@@ -38,6 +38,18 @@ class MediaPreview: DraftPreview {
                 }
                 }
             })
             })
             isHidden = false
             isHidden = false
+        } else if draft.draftViewType == DC_MSG_VIDEO, let path = draft.draftAttachment {
+            self.isHidden = false
+            DispatchQueue.global(qos: .userInteractive).async {
+                let thumbnailImage = DcUtils.generateThumbnailFromVideo(url: URL(fileURLWithPath: path, isDirectory: false))
+                if let thumbnailImage = thumbnailImage {
+                    DispatchQueue.main.async { [weak self] in
+                        guard let self = self else { return }
+                        self.contentImageView.image = thumbnailImage
+                        self.setAspectRatio(image: thumbnailImage)
+                    }
+                }
+            }
         } else {
         } else {
             isHidden = true
             isHidden = true
         }
         }