diff --git a/DropBlocks/Classes/DropBlocks.h b/DropBlocks/Classes/DropBlocks.h index 50ad010..b2ab290 100644 --- a/DropBlocks/Classes/DropBlocks.h +++ b/DropBlocks/Classes/DropBlocks.h @@ -18,6 +18,7 @@ typedef void (^LoadThumbnailCallback)(DBMetadata *metadata, NSError *error); typedef void (^UploadFileCallback)(NSString*, DBMetadata *metadata, NSError *error); typedef void (^UploadFileProgressCallback)(CGFloat progress); typedef void (^UploadFileChunkCallback)(NSString *uploadId, unsigned long long offset, NSDate *expiresDate, NSError *error); +typedef void (^UploadFileChunkProgressCallback)(CGFloat progress); typedef void (^LoadRevisionsCallback)(NSArray *revisions, NSError *error); typedef void (^RestoreFileCallback)(DBMetadata *metadata, NSError *error); typedef void (^CreateFolderCallback)(DBMetadata *metadata, NSError *error); @@ -48,7 +49,7 @@ typedef void (^LoadSharableLinkCallback)(NSString *link, NSError *error); + (void)uploadFile:(NSString *)filename toPath:(NSString *)path withParentRev:(NSString *)parentRev fromPath:(NSString *)sourcePath completionBlock:(UploadFileCallback)completionBlock progressBlock:(UploadFileProgressCallback)progressBlock; -+ (void)uploadFileChunk:(NSString *)uploadId offset:(unsigned long long)offset fromPath:(NSString *)localPath completionBlock:(UploadFileChunkCallback)completionBlock; ++ (void)uploadFileChunk:(NSString *)uploadId offset:(unsigned long long)offset fromPath:(NSString *)localPath completionBlock:(UploadFileChunkCallback)completionBlock progressBlock:(UploadFileChunkProgressCallback)progressBlock; + (void)uploadFile:(NSString *)filename toPath:(NSString *)parentFolder withParentRev:(NSString *)parentRev fromUploadId:(NSString *)uploadId completionBlock:(UploadFileCallback)completionBlock; diff --git a/DropBlocks/Classes/DropBlocks.m b/DropBlocks/Classes/DropBlocks.m index f1063a3..d511b2c 100644 --- a/DropBlocks/Classes/DropBlocks.m +++ b/DropBlocks/Classes/DropBlocks.m @@ -109,8 +109,10 @@ + (void)uploadFile:(NSString *)filename toPath:(NSString *)path withParentRev:(N //- (void)uploadFile:(NSString*)filename toPath:(NSString*)path fromPath:(NSString *)sourcePath __attribute__((deprecated)); -+ (void)uploadFileChunk:(NSString *)uploadId offset:(unsigned long long)offset fromPath:(NSString *)localPath completionBlock:(UploadFileChunkCallback)completionBlock { - [[DropBlocks newInstanceWithCallback:completionBlock].restClient uploadFileChunk:uploadId offset:offset fromPath:localPath]; ++ (void)uploadFileChunk:(NSString *)uploadId offset:(unsigned long long)offset fromPath:(NSString *)localPath completionBlock:(UploadFileChunkCallback)completionBlock progressBlock:(UploadFileChunkProgressCallback)progressBlock { + DropBlocks* db = [DropBlocks newInstanceWithCallback:completionBlock]; + db.secondaryCallback = progressBlock; + [db.restClient uploadFileChunk:uploadId offset:offset fromPath:localPath]; } + (void)uploadFile:(NSString *)filename toPath:(NSString *)parentFolder withParentRev:(NSString *)parentRev fromUploadId:(NSString *)uploadId completionBlock:(UploadFileCallback)completionBlock { @@ -321,6 +323,18 @@ - (void)restClient:(DBRestClient *)client uploadFileChunkFailedWithError:(NSErro [strongSelf cleanup]; } +- (void)restClient:(DBRestClient *)client uploadFileChunkProgress:(CGFloat)progress + forFile:(NSString *)uploadId offset:(unsigned long long)offset fromPath:(NSString *)localPath { + //we can run into dealloc problems unless we keep a strong reference to ourselves till the method is done + DropBlocks* strongSelf = self; + UploadFileProgressCallback handler = strongSelf.secondaryCallback; + + if (handler) { + handler(progress); + } + +} + - (void)restClient:(DBRestClient *)client uploadedFile:(NSString *)destPath fromUploadId:(NSString *)uploadId metadata:(DBMetadata *)metadata { //we can run into dealloc problems unless we keep a strong reference to ourselves till the method is done