Swiftgram/submodules/HockeySDK-iOS/Classes/BITHockeyHelper+Application.m
Peter 76e5a7fab6 Add 'submodules/HockeySDK-iOS/' from commit 'c7d0c7026303253e2ac576c02655691e5d314fe2'
git-subtree-dir: submodules/HockeySDK-iOS
git-subtree-mainline: 085acd26c4432939403765234266e3c1be0f3dd9
git-subtree-split: c7d0c7026303253e2ac576c02655691e5d314fe2
2019-06-11 18:53:14 +01:00

44 lines
1.2 KiB
Objective-C

#import "BITHockeyHelper+Application.h"
/*
* Workaround for exporting symbols from category object files.
*/
NSString *BITHockeyHelperApplicationCategory;
@implementation BITHockeyHelper (Application)
+ (BITApplicationState)applicationState {
// App extensions must not access sharedApplication.
if (!bit_isRunningInAppExtension()) {
__block BITApplicationState state;
dispatch_block_t block = ^{
state = (BITApplicationState)[[self class] sharedAppState];
};
if ([NSThread isMainThread]) {
block();
} else {
dispatch_sync(dispatch_get_main_queue(), block);
}
return state;
}
return BITApplicationStateUnknown;
}
+ (UIApplication *)sharedApplication {
// Compute selector at runtime for more discretion.
SEL sharedAppSel = NSSelectorFromString(@"sharedApplication");
return ((UIApplication * (*)(id, SEL))[[UIApplication class] methodForSelector:sharedAppSel])([UIApplication class],
sharedAppSel);
}
+ (UIApplicationState)sharedAppState {
return [[[[self class] sharedApplication] valueForKey:@"applicationState"] longValue];
}
@end