Skip to content

Instantly share code, notes, and snippets.

@kean
Created March 2, 2015 10:18
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save kean/ae2b051225208ec4d871 to your computer and use it in GitHub Desktop.
Save kean/ae2b051225208ec4d871 to your computer and use it in GitHub Desktop.
DFImageActivityItemProvider draft
@interface DFImageActivityItemProvider : UIActivityItemProvider
- (instancetype)initWithPlaceholderItem:(id)placeholderItem request:(DFImageRequest *)request;
@end
@implementation DFImageActivityItemProvider {
DFImageRequest *_request;
DFImageRequestID *_requestID;
}
- (instancetype)initWithPlaceholderItem:(id)placeholderItem request:(DFImageRequest *)request {
if (self = [super init]) {
_request = request;
}
return self;
}
- (id)activityViewControllerPlaceholderItem:(UIActivityViewController *)activityViewController {
return [UIImage new];
}
- (id)item {
dispatch_semaphore_t sema = dispatch_semaphore_create(0);
UIImage *__block image;
_requestID = [[DFImageManager sharedManager] requestImageForRequest:_request completion:^(UIImage *image, NSDictionary *info) {
image = image;
dispatch_semaphore_signal(sema);
}];
dispatch_semaphore_wait(sema, DISPATCH_TIME_FOREVER);
return image;
}
- (void)cancel {
[super cancel];
[_requestID cancel];
}
@end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment