[ShareExtension] Handle image items manually and remove NSData coercion, as UIlmage to NSData coercion do not work. That was causing screenshot sharing to fail (Fix #2022).

This commit is contained in:
SBiOSoftWhare
2019-01-04 13:45:41 +01:00
parent ff15000569
commit fdaf5ce28d
@@ -218,13 +218,31 @@ typedef NS_ENUM(NSInteger, ImageCompressionMode)
else if ([itemProvider hasItemConformingToTypeIdentifier:UTTypeImage])
{
itemProvider.isLoaded = NO;
[itemProvider loadItemForTypeIdentifier:UTTypeImage options:nil completionHandler:^(NSData *imageData, NSError * _Null_unspecified error)
[itemProvider loadItemForTypeIdentifier:UTTypeImage options:nil completionHandler:^(id<NSSecureCoding> _Nullable itemProviderItem, NSError * _Null_unspecified error)
{
if (weakSelf)
{
typeof(self) self = weakSelf;
itemProvider.isLoaded = YES;
NSData *imageData;
if ([(NSObject *)itemProviderItem isKindOfClass:[NSData class]])
{
imageData = (NSData*)itemProviderItem;
}
else if ([(NSObject *)itemProviderItem isKindOfClass:[NSURL class]])
{
NSURL *imageURL = (NSURL*)itemProviderItem;
imageData = [NSData dataWithContentsOfURL:imageURL];
}
else if ([(NSObject *)itemProviderItem isKindOfClass:[UIImage class]])
{
UIImage *image = (UIImage*)itemProviderItem;
imageData = UIImageJPEGRepresentation(image, 1.0);
}
if (imageData)
{
[self.pendingImages addObject:imageData];