Replaced RCTSparseArray with NSDictionary

Reviewed By: jspahrsummers

Differential Revision: D2651920

fb-gh-sync-id: 953e2ea33abfc7a3a553da95b13e9ab2bccc5a1c
This commit is contained in:
Nick Lockwood 2015-11-14 10:25:00 -08:00 committed by facebook-github-bot-4
parent a48929b591
commit 81c289a9cd

View File

@ -46,7 +46,7 @@ RCT_ENUM_CONVERTER(ALAssetsGroupType, (@{
+ (ALAssetsFilter *)ALAssetsFilter:(id)json + (ALAssetsFilter *)ALAssetsFilter:(id)json
{ {
static NSDictionary *options; static NSDictionary<NSString *, ALAssetsFilter *> *options;
static dispatch_once_t onceToken; static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{ dispatch_once(&onceToken, ^{
options = @{ options = @{
@ -102,15 +102,16 @@ RCT_EXPORT_METHOD(saveImageWithTag:(NSString *)imageTag
}]; }];
} }
- (void)callCallback:(RCTResponseSenderBlock)callback static void RCTCallCallback(RCTResponseSenderBlock callback,
withAssets:(NSArray<NSDictionary *> *)assets NSArray<NSDictionary<NSString *, id> *> *assets,
hasNextPage:(BOOL)hasNextPage BOOL hasNextPage)
{ {
if (!assets.count) { if (!assets.count) {
callback(@[@{ callback(@[@{
@"edges": assets, @"edges": assets,
@"page_info": @{ @"page_info": @{
@"has_next_page": @NO} @"has_next_page": @NO,
}
}]); }]);
return; return;
} }
@ -119,12 +120,13 @@ RCT_EXPORT_METHOD(saveImageWithTag:(NSString *)imageTag
@"page_info": @{ @"page_info": @{
@"start_cursor": assets[0][@"node"][@"image"][@"uri"], @"start_cursor": assets[0][@"node"][@"image"][@"uri"],
@"end_cursor": assets[assets.count - 1][@"node"][@"image"][@"uri"], @"end_cursor": assets[assets.count - 1][@"node"][@"image"][@"uri"],
@"has_next_page": @(hasNextPage)} @"has_next_page": @(hasNextPage),
}
}]); }]);
} }
RCT_EXPORT_METHOD(getPhotos:(NSDictionary *)params RCT_EXPORT_METHOD(getPhotos:(NSDictionary *)params
callback:(RCTResponseSenderBlock)callback successCallback:(RCTResponseSenderBlock)successCallback
errorCallback:(RCTResponseErrorBlock)errorCallback) errorCallback:(RCTResponseErrorBlock)errorCallback)
{ {
NSUInteger first = [RCTConvert NSInteger:params[@"first"]]; NSUInteger first = [RCTConvert NSInteger:params[@"first"]];
@ -136,7 +138,7 @@ RCT_EXPORT_METHOD(getPhotos:(NSDictionary *)params
BOOL __block foundAfter = NO; BOOL __block foundAfter = NO;
BOOL __block hasNextPage = NO; BOOL __block hasNextPage = NO;
BOOL __block calledCallback = NO; BOOL __block calledCallback = NO;
NSMutableArray<NSDictionary *> *assets = [NSMutableArray new]; NSMutableArray<NSDictionary<NSString *, id> *> *assets = [NSMutableArray new];
[_bridge.assetsLibrary enumerateGroupsWithTypes:groupTypes usingBlock:^(ALAssetsGroup *group, BOOL *stopGroups) { [_bridge.assetsLibrary enumerateGroupsWithTypes:groupTypes usingBlock:^(ALAssetsGroup *group, BOOL *stopGroups) {
if (group && (groupName == nil || [groupName isEqualToString:[group valueForProperty:ALAssetsGroupPropertyName]])) { if (group && (groupName == nil || [groupName isEqualToString:[group valueForProperty:ALAssetsGroupPropertyName]])) {
@ -156,7 +158,7 @@ RCT_EXPORT_METHOD(getPhotos:(NSDictionary *)params
*stopGroups = YES; *stopGroups = YES;
hasNextPage = YES; hasNextPage = YES;
RCTAssert(calledCallback == NO, @"Called the callback before we finished processing the results."); RCTAssert(calledCallback == NO, @"Called the callback before we finished processing the results.");
[self callCallback:callback withAssets:assets hasNextPage:hasNextPage]; RCTCallCallback(successCallback, assets, hasNextPage);
calledCallback = YES; calledCallback = YES;
return; return;
} }
@ -174,8 +176,7 @@ RCT_EXPORT_METHOD(getPhotos:(NSDictionary *)params
@"isStored": @YES, @"isStored": @YES,
}, },
@"timestamp": @(date.timeIntervalSince1970), @"timestamp": @(date.timeIntervalSince1970),
@"location": loc ? @"location": loc ? @{
@{
@"latitude": @(loc.coordinate.latitude), @"latitude": @(loc.coordinate.latitude),
@"longitude": @(loc.coordinate.longitude), @"longitude": @(loc.coordinate.longitude),
@"altitude": @(loc.altitude), @"altitude": @(loc.altitude),
@ -190,7 +191,7 @@ RCT_EXPORT_METHOD(getPhotos:(NSDictionary *)params
// Sometimes the enumeration continues even if we set stop above, so we guard against calling the callback // Sometimes the enumeration continues even if we set stop above, so we guard against calling the callback
// multiple times here. // multiple times here.
if (!calledCallback) { if (!calledCallback) {
[self callCallback:callback withAssets:assets hasNextPage:hasNextPage]; RCTCallCallback(successCallback, assets, hasNextPage);
calledCallback = YES; calledCallback = YES;
} }
} }