// FREEBIE
pull/1/head
Michael Kirk 7 years ago
parent 8996741277
commit 47e92dbad5

@ -15,7 +15,7 @@ public class ShareViewController: UINavigationController, ShareViewDelegate, SAE
private var hasInitialRootViewController = false
private var isReadyForAppExtensions = false
var progressPoller: ProgressPoller?
private var progressPoller: ProgressPoller?
var loadViewController: SAELoadViewController?
override open func loadView() {
@ -457,7 +457,8 @@ public class ShareViewController: UINavigationController, ShareViewDelegate, SAE
// NSItemProvider `loadItem` API.
// However, for some reason, AVFoundation operations such as generating a preview image and playing
// the url in the AVMoviePlayer fail on these converted formats until unless we first copy the media
// into our container. (These operations succeed when resending mp4s received and sent in Signal)
// into our container. (These operations succeed when sending a non-converted mp4 (e.g. one received,
// saved, and resent in Signal)
//
// I don't understand why this is, and I haven't found any relevant documentation in the NSItemProvider
// or AVFoundation docs.
@ -494,8 +495,9 @@ public class ShareViewController: UINavigationController, ShareViewDelegate, SAE
let (promise, exportSession) = SignalAttachment.compressVideoAsMp4(dataSource: dataSource, dataUTI: specificUTIType)
// Can we move this process to the end of the share flow rather than up front?
// Currently we aren't able to generate a proper thumbnail or play the video in the app extension without first converting it.
// TODO: How can we move waiting for this export to the end of the share flow rather than having to do it up front?
// Ideally we'd be able to start it here, and not block the UI on conversion unless there's still work to be done
// when the user hit's "send".
if let exportSession = exportSession {
let progressPoller = ProgressPoller(timeInterval: 0.1, ratioCompleteBlock: { return exportSession.progress })
self.progressPoller = progressPoller
@ -518,7 +520,8 @@ public class ShareViewController: UINavigationController, ShareViewDelegate, SAE
}
}
class ProgressPoller {
// Exposes a Progress object, whose progress is updated by polling the return of a given block
private class ProgressPoller {
let TAG = "[ProgressPoller]"

Loading…
Cancel
Save