This commit is contained in:
Ran Greenberg 2016-08-11 16:27:26 +03:00
parent 7b77985a44
commit 169485e015
2 changed files with 31 additions and 57 deletions

View File

@ -49,7 +49,7 @@
//supported
@property (nonatomic, strong) NSDictionary *supported;
@property (nonatomic, strong) NSDictionary *fileTypeSupport;
@property (nonatomic, strong) NSArray *supportedFileTypesArray;
@ -180,54 +180,46 @@ static NSString * const CellReuseIdentifier = @"Cell";
}
-(void)setSupported:(NSDictionary *)supported {
_supported = supported;
NSArray *supportedFileTypesArray;
UIColor *unsupportedOverlayColor;
UIImage *unsupportedImage;
NSString *unsupportedText;
UIColor *unsupportedTextColor;
-(void)setFileTypeSupport:(NSDictionary *)supported {
_fileTypeSupport = supported;
NSMutableDictionary *supportedDict = [[NSMutableDictionary alloc] init];
// SUPPORTED_FILE_TYPES
id supportedFileTypesId = self.supported[SUPPORTED_FILE_TYPES];
id supportedFileTypesId = self.fileTypeSupport[SUPPORTED_FILE_TYPES];
if (supportedFileTypesId) {
supportedFileTypesArray = [RCTConvert NSArray:supportedFileTypesId];
[supportedDict setValue:supportedFileTypesArray forKey:SUPPORTED_FILE_TYPES];
NSArray *supportedFileTypesArray = [RCTConvert NSArray:supportedFileTypesId];
supportedDict[SUPPORTED_FILE_TYPES] = supportedFileTypesArray;
self.supportedFileTypesArray = [NSArray arrayWithArray:supportedFileTypesArray];
}
// UNSUPPORTED_OVERLAY_COLOR
id unsupportedOverlayColorId = self.supported[UNSUPPORTED_OVERLAY_COLOR];
id unsupportedOverlayColorId = self.fileTypeSupport[UNSUPPORTED_OVERLAY_COLOR];
if (unsupportedOverlayColorId) {
unsupportedOverlayColor = [RCTConvert UIColor:unsupportedOverlayColorId];
[supportedDict setValue:unsupportedOverlayColor forKey:UNSUPPORTED_OVERLAY_COLOR];
UIColor *unsupportedOverlayColor = [RCTConvert UIColor:unsupportedOverlayColorId];
supportedDict[UNSUPPORTED_OVERLAY_COLOR] = unsupportedOverlayColor;
}
// UNSUPPORTED_OVERLAY_COLOR
id unsupportedImageId = self.supported[UNSUPPORTED_IMAGE];
id unsupportedImageId = self.fileTypeSupport[UNSUPPORTED_IMAGE];
if (unsupportedImageId) {
unsupportedImage = [RCTConvert UIImage:unsupportedImageId];
[supportedDict setValue:unsupportedImage forKey:UNSUPPORTED_IMAGE];
UIImage *unsupportedImage = [RCTConvert UIImage:unsupportedImageId];
supportedDict[UNSUPPORTED_IMAGE] = unsupportedImage;
}
// UNSUPPORTED_TEXT
id unsupportedTextId = self.supported[UNSUPPORTED_TEXT];
id unsupportedTextId = self.fileTypeSupport[UNSUPPORTED_TEXT];
if (unsupportedTextId) {
unsupportedText = [RCTConvert NSString:unsupportedTextId];
[supportedDict setValue:unsupportedText forKey:UNSUPPORTED_TEXT];
NSString *unsupportedText = [RCTConvert NSString:unsupportedTextId];
supportedDict[UNSUPPORTED_TEXT] = unsupportedText;
}
// UNSUPPORTED_TEXT_COLOR
id unsupportedTextColorId = self.supported[UNSUPPORTED_TEXT_COLOR];
id unsupportedTextColorId = self.fileTypeSupport[UNSUPPORTED_TEXT_COLOR];
if (unsupportedTextColorId) {
unsupportedTextColor = [RCTConvert UIColor:unsupportedTextColorId];
[supportedDict setValue:unsupportedTextColor forKey:UNSUPPORTED_TEXT_COLOR];
UIColor *unsupportedTextColor = [RCTConvert UIColor:unsupportedTextColorId];
supportedDict[UNSUPPORTED_TEXT_COLOR] = unsupportedTextColor;
}
[CKGalleryCollectionViewCell setSupported:supportedDict];
@ -240,8 +232,6 @@ static NSString * const CellReuseIdentifier = @"Cell";
if ([albumName caseInsensitiveCompare:@"all photos"] == NSOrderedSame || !albumName || [albumName isEqualToString:@""]) {
PHFetchResult *allPhotosFetchResults = [PHAsset fetchAssetsWithOptions:self.fetchOptions];
[self upadateCollectionView:allPhotosFetchResults animated:(self.galleryData != nil)];
return;
}
@ -276,48 +266,32 @@ static NSString * const CellReuseIdentifier = @"Cell";
NSString *fileType = [self extractFileTypeForAsset:asset];
__block CKGalleryCollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:CellReuseIdentifier forIndexPath:indexPath];
cell.isSelected = ((NSNumber*)assetDictionary[@"isSelected"]).boolValue;
cell.isSupported = YES;
// cell.isSupported = YES;
if (self.supportedFileTypesArray) {
cell.isSupported = [self.supportedFileTypesArray containsObject:[fileType lowercaseString]];
}
cell.representedAssetIdentifier = asset.localIdentifier;
[self.imageManager requestImageForAsset:asset
targetSize:CGSizeMake(self.cellSize.width*IMAGE_SIZE_MULTIPLIER, self.cellSize.height*IMAGE_SIZE_MULTIPLIER)
contentMode:PHImageContentModeDefault
options:self.imageRequestOptions
options:nil
resultHandler:^(UIImage *result, NSDictionary *info) {
if ([cell.representedAssetIdentifier isEqualToString:asset.localIdentifier]) {
cell.thumbnailImage = result;
if (self.supportedFileTypesArray) {
if ([self.supportedFileTypesArray containsObject:[fileType lowercaseString]]) {
cell.isSupported = YES;
}
else {
cell.isSupported = NO;
}
}
}
}];
return cell;
}
-(NSString*)extractFileTypeForAsset:(PHAsset*)asset {
NSString *fileName = [asset valueForKey:@"filename"];
NSArray *splitFileName = [fileName componentsSeparatedByString:@"."];
if (splitFileName.count > 1) {
return splitFileName[1];
}
return nil;
return [asset valueForKey:@"uniformTypeIdentifier"];
}
@ -411,7 +385,7 @@ RCT_EXPORT_VIEW_PROPERTY(onTapImage, RCTDirectEventBlock);
RCT_EXPORT_VIEW_PROPERTY(selectedImageIcon, UIImage);
RCT_EXPORT_VIEW_PROPERTY(unSelectedImageIcon, UIImage);
RCT_EXPORT_VIEW_PROPERTY(selectedImages, NSArray);
RCT_EXPORT_VIEW_PROPERTY(supported, NSDictionary);
RCT_EXPORT_VIEW_PROPERTY(fileTypeSupport, NSDictionary);

View File

@ -18,10 +18,10 @@ export default class CameraKitGalleryView extends Component {
const transformedProps = {...this.props};
transformedProps.albumName = this.props.albumName ? this.props.albumName : ALL_PHOTOS;
transformedProps.columnCount = this.props.columnCount && this.props.columnCount > 0 ? this.props.columnCount : DEFAULT_COLUMN_COUNT;
_.update(transformedProps, 'supported.unsupportedOverlayColor', (c) => processColor(c));
_.update(transformedProps, 'supported.unsupportedTextColor', (c) => processColor(c));
if (transformedProps.supported.unsupportedImage) {
_.update(transformedProps, 'supported.unsupportedImage', (image) => resolveAssetSource(image));
_.update(transformedProps, 'fileTypeSupport.unsupportedOverlayColor', (c) => processColor(c));
_.update(transformedProps, 'fileTypeSupport.unsupportedTextColor', (c) => processColor(c));
if (transformedProps.fileTypeSupport.unsupportedImage) {
_.update(transformedProps, 'fileTypeSupport.unsupportedImage', (image) => resolveAssetSource(image));
}
return <GalleryView {...transformedProps}/>