mirror of
https://github.com/status-im/react-native-cameraroll.git
synced 2025-02-05 14:23:28 +00:00
Replaced RCTSparseArray with NSDictionary
Reviewed By: jspahrsummers Differential Revision: D2651920 fb-gh-sync-id: 953e2ea33abfc7a3a553da95b13e9ab2bccc5a1c
This commit is contained in:
parent
a48929b591
commit
81c289a9cd
@ -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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user