From 4a87bc1b37d31cd74e25014896978c374c58791e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stanis=C5=82aw=20Chmiela?= Date: Wed, 27 May 2020 11:26:22 +0200 Subject: [PATCH] [ios] Only save permissions that are expected to be scoped --- .../Permissions/EXScopedPermissions.m | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/ios/Exponent/Versioned/Core/UniversalModules/Permissions/EXScopedPermissions.m b/ios/Exponent/Versioned/Core/UniversalModules/Permissions/EXScopedPermissions.m index caaf3dfbe00c5..93e85fb8d857a 100644 --- a/ios/Exponent/Versioned/Core/UniversalModules/Permissions/EXScopedPermissions.m +++ b/ios/Exponent/Versioned/Core/UniversalModules/Permissions/EXScopedPermissions.m @@ -70,7 +70,10 @@ - (void)askForPermissionUsingRequesterClass:(Class)requesterClass // ask for permission. If granted then save it as scope permission void (^customOnResults)(NSDictionary *) = ^(NSDictionary *permission){ UM_ENSURE_STRONGIFY(self) - [self.permissionsService savePermission:permission ofType:permissionType forExperience:self.experienceId]; + // if permission should be scoped save it + if ([self shouldVerifyScopedPermission:permissionType]) { + [self.permissionsService savePermission:permission ofType:permissionType forExperience:self.experienceId]; + } resolve(permission); }; @@ -82,10 +85,13 @@ - (void)askForPermissionUsingRequesterClass:(Class)requesterClass UIAlertAction *allowAction = [UIAlertAction actionWithTitle:@"Allow" style:UIAlertActionStyleDefault handler:^(UIAlertAction *action) { UM_ENSURE_STRONGIFY(self); NSMutableDictionary *permission = [globalPermissions mutableCopy]; - // try to save scoped permissions - if fails than permission is denied - if (![self.permissionsService savePermission:permission ofType:permissionType forExperience:self.experienceId]) { - permission[@"status"] = [[self class] permissionStringForStatus:UMPermissionStatusDenied]; - permission[@"granted"] = @(NO); + // if permission should be scoped + if ([self shouldVerifyScopedPermission:permissionType]) { + // try to save scoped permissions - if fails than permission is denied + if (![self.permissionsService savePermission:permission ofType:permissionType forExperience:self.experienceId]) { + permission[@"status"] = [[self class] permissionStringForStatus:UMPermissionStatusDenied]; + permission[@"granted"] = @(NO); + } } resolve(permission); }];