Fix attachment upload progress indicators.
This commit is contained in:
parent
6683c09f81
commit
85aa6ee682
@ -224,7 +224,10 @@ void AppendMultipartFormPath(id<AFMultipartFormData> formData, NSString *name, N
|
||||
self.urlPath = form.key;
|
||||
|
||||
NSString *uploadUrlPath = @"";
|
||||
return [OWSUploadV2 uploadObjcWithData:self.avatarData uploadForm:form uploadUrlPath:uploadUrlPath];
|
||||
return [OWSUploadV2 uploadObjcWithData:self.avatarData
|
||||
uploadForm:form
|
||||
uploadUrlPath:uploadUrlPath
|
||||
progressBlock:progressBlock];
|
||||
}
|
||||
|
||||
@end
|
||||
@ -373,7 +376,10 @@ void AppendMultipartFormPath(id<AFMultipartFormData> formData, NSString *name, N
|
||||
self.serverId = serverId;
|
||||
|
||||
NSString *uploadUrlPath = @"attachments/";
|
||||
return [OWSUploadV2 uploadObjcWithData:self.attachmentData uploadForm:form uploadUrlPath:uploadUrlPath];
|
||||
return [OWSUploadV2 uploadObjcWithData:self.attachmentData
|
||||
uploadForm:form
|
||||
uploadUrlPath:uploadUrlPath
|
||||
progressBlock:progressBlock];
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
@ -8,8 +8,14 @@ import PromiseKit
|
||||
@objc
|
||||
public class OWSUploadV2: NSObject {
|
||||
@objc
|
||||
public class func uploadObjc(data: Data, uploadForm: OWSUploadForm, uploadUrlPath: String) -> AnyPromise {
|
||||
return AnyPromise(upload(data: data, uploadForm: uploadForm, uploadUrlPath: uploadUrlPath))
|
||||
public class func uploadObjc(data: Data,
|
||||
uploadForm: OWSUploadForm,
|
||||
uploadUrlPath: String,
|
||||
progressBlock: ((Progress) -> Void)?) -> AnyPromise {
|
||||
return AnyPromise(upload(data: data,
|
||||
uploadForm: uploadForm,
|
||||
uploadUrlPath: uploadUrlPath,
|
||||
progressBlock: progressBlock))
|
||||
}
|
||||
}
|
||||
|
||||
@ -25,12 +31,15 @@ public extension OWSUploadV2 {
|
||||
|
||||
// MARK: -
|
||||
|
||||
class func upload(data: Data, uploadForm: OWSUploadForm, uploadUrlPath: String) -> Promise<String> {
|
||||
class func upload(data: Data,
|
||||
uploadForm: OWSUploadForm,
|
||||
uploadUrlPath: String,
|
||||
progressBlock: ((Progress) -> Void)? = nil) -> Promise<String> {
|
||||
let (promise, resolver) = Promise<String>.pending()
|
||||
DispatchQueue.global().async {
|
||||
self.uploadSessionManager.post(uploadUrlPath,
|
||||
parameters: nil,
|
||||
constructingBodyWith: { (formData: AFMultipartFormData) -> Void in
|
||||
parameters: nil,
|
||||
constructingBodyWith: { (formData: AFMultipartFormData) -> Void in
|
||||
|
||||
// We have to build up the form manually vs. simply passing in a parameters dict
|
||||
// because AWS is sensitive to the order of the form params (at least the "key"
|
||||
@ -43,10 +52,14 @@ public extension OWSUploadV2 {
|
||||
|
||||
formData.appendPart(withForm: data, name: "file")
|
||||
},
|
||||
progress: { progress in
|
||||
progress: { progress in
|
||||
Logger.verbose("progress: \(progress.fractionCompleted)")
|
||||
|
||||
if let progressBlock = progressBlock {
|
||||
progressBlock(progress)
|
||||
}
|
||||
},
|
||||
success: { (_, _) in
|
||||
success: { (_, _) in
|
||||
Logger.verbose("Success.")
|
||||
let uploadedUrlPath = uploadForm.key
|
||||
resolver.fulfill(uploadedUrlPath)
|
||||
|
||||
Loading…
Reference in New Issue
Block a user