diff --git a/Ring/Ring/Extensions/String+Helpers.swift b/Ring/Ring/Extensions/String+Helpers.swift
index 5f04b7cd133b8a49cbf89cf074a6ec0f7ebd29ad..3fbafddbedd4b632839aa144db120b7886cde994 100644
--- a/Ring/Ring/Extensions/String+Helpers.swift
+++ b/Ring/Ring/Extensions/String+Helpers.swift
@@ -21,6 +21,7 @@
  */
 
 import Foundation
+import MobileCoreServices
 
 extension String {
     func toBool() -> Bool? {
@@ -97,4 +98,37 @@ extension String {
     var boolValue: Bool {
         return (self as NSString).boolValue
     }
+
+    func isMediaExtension() -> Bool {
+        let uti = UTTypeCreatePreferredIdentifierForTag(
+            kUTTagClassFilenameExtension,
+            self as CFString,
+            nil)
+
+        var fileIsMedia = false
+        if let value = uti?.takeRetainedValue(),
+            UTTypeConformsTo(value, kUTTypeMovie) || UTTypeConformsTo(value, kUTTypeVideo)
+                || UTTypeConformsTo(value, kUTTypeAudio) {
+            fileIsMedia = true
+        }
+        let mediaExtension = ["ogg", "webm"]
+        if mediaExtension.contains(where: {$0.compare(self, options: .caseInsensitive) == .orderedSame}) {
+            fileIsMedia = true
+        }
+        return fileIsMedia
+    }
+
+    func isImageExtension() -> Bool {
+        let uti = UTTypeCreatePreferredIdentifierForTag(
+            kUTTagClassFilenameExtension,
+            self as CFString,
+            nil)
+
+        var fileIsImage = false
+        if let value = uti?.takeRetainedValue(),
+            UTTypeConformsTo(value, kUTTypeImage) {
+            fileIsImage = true
+        }
+        return fileIsImage
+    }
 }
diff --git a/Ring/Ring/Features/Conversations/Conversation/ConversationViewController.swift b/Ring/Ring/Features/Conversations/Conversation/ConversationViewController.swift
index decc5f333034b33fff9c93f025af115bdac01397..c21a1eab46cf2a12eb949de196688ad7b1e81115 100644
--- a/Ring/Ring/Features/Conversations/Conversation/ConversationViewController.swift
+++ b/Ring/Ring/Features/Conversations/Conversation/ConversationViewController.swift
@@ -115,35 +115,15 @@ class ConversationViewController: UIViewController,
         let filePath = urls[0].absoluteURL.path
         self.log.debug("Successfully imported \(filePath)")
         let fileName = urls[0].absoluteURL.lastPathComponent
-
-        let result = PHAsset.fetchAssets(withALAssetURLs: urls, options: nil)
-
-        guard let localCachePath = NSURL(fileURLWithPath: NSTemporaryDirectory()).appendingPathComponent(fileName) else {
+        let fileExtension = urls[0].pathExtension
+        if !fileExtension.isMediaExtension() && !fileExtension.isImageExtension() {
+            self.viewModel.sendFile(filePath: filePath, displayName: fileName)
             return
         }
-        self.log.debug("localCachePath: \(String(describing: localCachePath))")
-
-        guard let phAsset = result.firstObject else { return }
-
-        if phAsset.mediaType == .video {
-            PHImageManager.default()
-                .requestAVAsset(forVideo: phAsset,
-                                options: PHVideoRequestOptions(),
-                                resultHandler: { (asset, _, _) -> Void in
-                                    guard let asset = asset as? AVURLAsset else {
-                                        self.log.error("couldn't get asset")
-                                        return
-                                    }
-                                    guard let videoData = NSData(contentsOf: asset.url) else {
-                                        self.log.error("couldn't get movie data")
-                                        return
-                                    }
-                                    self.log.debug("copying movie to: \(String(describing: localCachePath))")
-                                    videoData.write(toFile: localCachePath.path, atomically: true)
-                                    self.viewModel.sendAndSaveFile(displayName: fileName,
-                                                                   imageData: videoData as Data)
-                })
-        } else {
+        do {
+            let data = try Data(contentsOf: urls[0])
+            self.viewModel.sendAndSaveFile(displayName: fileName, imageData: data)
+        } catch {
             self.viewModel.sendFile(filePath: filePath, displayName: fileName)
         }
     }
diff --git a/Ring/Ring/Features/Conversations/Conversation/MessageViewModel.swift b/Ring/Ring/Features/Conversations/Conversation/MessageViewModel.swift
index 35a8ea36c86c7ba99e11a26a5a56a15a85c8e483..86c55b7e3e895d01c3ec96a9c207dd21ceb2737a 100644
--- a/Ring/Ring/Features/Conversations/Conversation/MessageViewModel.swift
+++ b/Ring/Ring/Features/Conversations/Conversation/MessageViewModel.swift
@@ -246,22 +246,7 @@ class MessageViewModel {
         guard let fileExtension = NSURL(fileURLWithPath: name).pathExtension else {
             return nil
         }
-        let uti = UTTypeCreatePreferredIdentifierForTag(
-            kUTTagClassFilenameExtension,
-            fileExtension as CFString,
-            nil)
-
-        var fileIsMedia = false
-        if let value = uti?.takeRetainedValue(),
-            UTTypeConformsTo(value, kUTTypeMovie) || UTTypeConformsTo(value, kUTTypeVideo)
-                || UTTypeConformsTo(value, kUTTypeAudio) {
-            fileIsMedia = true
-                   }
-        let mediaExtension = ["ogg", "webm"]
-        if mediaExtension.contains(where: {$0.compare(fileExtension, options: .caseInsensitive) == .orderedSame}) {
-            fileIsMedia = true
-        }
-        if fileIsMedia {
+        if fileExtension.isMediaExtension() {
             // first search for incoming video in downloads folder and for outgoing in recorded
             let folderName = self.message.incoming ? Directories.downloads.rawValue : Directories.recorded.rawValue
             var path = self.dataTransferService