Merge pull request #443 from bmourat/fix/get-resource-value-async

Calling getResourceValue asynchronously
This commit is contained in:
Benjamin Scholtysik (Reimold)
2017-08-02 18:28:45 -07:00
committed by GitHub
2 changed files with 25 additions and 15 deletions

View File

@@ -159,13 +159,18 @@ void bit_fixBackupAttributeForURL(NSURL *directoryURL) {
}
if (directoryURL) {
NSError *getResourceError = nil;
NSNumber *appSupportDirExcludedValue;
if ([directoryURL getResourceValue:&appSupportDirExcludedValue forKey:NSURLIsExcludedFromBackupKey error:&getResourceError] && appSupportDirExcludedValue) {
NSError *setResourceError = nil;
[directoryURL setResourceValue:@NO forKey:NSURLIsExcludedFromBackupKey error:&setResourceError];
}
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
NSError *getResourceError = nil;
NSNumber *appSupportDirExcludedValue;
if ([directoryURL getResourceValue:&appSupportDirExcludedValue forKey:NSURLIsExcludedFromBackupKey error:&getResourceError] && appSupportDirExcludedValue) {
NSError *setResourceError = nil;
if(![directoryURL setResourceValue:@NO forKey:NSURLIsExcludedFromBackupKey error:&setResourceError]) {
BITHockeyLogError(@"ERROR: Error while setting resource value: %@", setResourceError.localizedDescription);
}
} else {
BITHockeyLogError(@"ERROR: Error while retrieving resource value: %@", getResourceError.localizedDescription);
}
});
}
}

View File

@@ -307,15 +307,20 @@
}
- (BOOL)excludeAttributeIsSetForURL:(NSURL *)directoryURL {
NSError *getResourceError = nil;
NSNumber *appSupportDirExcludedValue;
if ([directoryURL getResourceValue:&appSupportDirExcludedValue forKey:NSURLIsExcludedFromBackupKey error:&getResourceError] && appSupportDirExcludedValue) {
if ([appSupportDirExcludedValue isEqualToValue:@YES]) {
return YES;
__block BOOL result = NO;
XCTestExpectation *expectation = [self expectationWithDescription:@"wait"];
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
NSError *getResourceError = nil;
NSNumber *appSupportDirExcludedValue;
if ([directoryURL getResourceValue:&appSupportDirExcludedValue forKey:NSURLIsExcludedFromBackupKey error:&getResourceError] && appSupportDirExcludedValue) {
if ([appSupportDirExcludedValue isEqualToValue:@YES]) {
result = YES;
}
}
}
return NO;
[expectation fulfill];
});
[self waitForExpectationsWithTimeout:5 handler:nil];
return result;
}
@end