CONNECT-130: use [JMC sharedInstance] now, instead of [JMC instance]. also removed #ifdef JMC_ENABLED now that this is detected via reflection

This commit is contained in:
npellow 2011-12-19 15:49:00 +11:00
parent 2dadd66658
commit 5bfe6ece18

View File

@ -61,32 +61,32 @@
} }
#endif #endif
+ (BOOL)isJMCActive { +(id)jmcInstance {
#ifdef JMC_ENABLED
id jmcClass = NSClassFromString(@"JMC");
id jmcInstance = [jmcClass performSelector:@selector(instance)];
id jmcClass = NSClassFromString(@"JMC");
if (jmcClass && [jmcClass respondsToSelector:@selector(sharedInstance)]) {
return [jmcClass performSelector:@selector(sharedInstance)];
} else if (jmcClass && [jmcClass respondsToSelector:@selector(instance)]) {
return [jmcClass performSelector:@selector(instance)]; // legacy pre (JMC 1.0.11) support
}
return nil;
}
+ (BOOL)isJMCActive {
id jmcInstance = [self jmcInstance];
return (jmcInstance) && ([jmcInstance performSelector:@selector(url)]); return (jmcInstance) && ([jmcInstance performSelector:@selector(url)]);
#else
return NO;
#endif
} }
+ (BOOL)isJMCPresent { + (BOOL)isJMCPresent {
#ifdef JMC_ENABLED
id jmcClass = NSClassFromString(@"JMC"); return [self jmcInstance] != nil;
return (jmcClass) && ([jmcClass respondsToSelector:@selector(instance)]);
#else
return NO;
#endif
} }
#pragma mark - Private Class Methods #pragma mark - Private Class Methods
+ (void)disableJMCCrashReporter { + (void)disableJMCCrashReporter {
#ifdef JMC_ENABLED
id jmcClass = NSClassFromString(@"JMC"); id jmcInstance = [self jmcInstance];
id jmcInstance = [jmcClass performSelector:@selector(instance)];
id jmcOptions = [jmcInstance performSelector:@selector(options)]; id jmcOptions = [jmcInstance performSelector:@selector(options)];
SEL crashReporterSelector = @selector(setCrashReportingEnabled:); SEL crashReporterSelector = @selector(setCrashReportingEnabled:);
@ -97,24 +97,20 @@
invocation.selector = crashReporterSelector; invocation.selector = crashReporterSelector;
[invocation setArgument:&value atIndex:2]; [invocation setArgument:&value atIndex:2];
[invocation invoke]; [invocation invoke];
#endif
} }
+ (BOOL)checkJMCConfiguration:(NSDictionary *)configuration { + (BOOL)checkJMCConfiguration:(NSDictionary *)configuration {
#ifdef JMC_ENABLED
return (([[configuration valueForKey:@"enabled"] boolValue]) && return (([[configuration valueForKey:@"enabled"] boolValue]) &&
([[configuration valueForKey:@"url"] length] > 0) && ([[configuration valueForKey:@"url"] length] > 0) &&
([[configuration valueForKey:@"key"] length] > 0) && ([[configuration valueForKey:@"key"] length] > 0) &&
([[configuration valueForKey:@"project"] length] > 0)); ([[configuration valueForKey:@"project"] length] > 0));
#else
return NO;
#endif
} }
+ (void)applyJMCConfiguration:(NSDictionary *)configuration { + (void)applyJMCConfiguration:(NSDictionary *)configuration {
#ifdef JMC_ENABLED
id jmcClass = NSClassFromString(@"JMC"); id jmcInstance = [self jmcInstance];
id jmcInstance = [jmcClass performSelector:@selector(instance)];
SEL configureSelector = @selector(configureJiraConnect:projectKey:apiKey:); SEL configureSelector = @selector(configureJiraConnect:projectKey:apiKey:);
NSString *url = [configuration valueForKey:@"url"]; NSString *url = [configuration valueForKey:@"url"];
@ -128,7 +124,7 @@
[invocation setArgument:&project atIndex:3]; [invocation setArgument:&project atIndex:3];
[invocation setArgument:&key atIndex:4]; [invocation setArgument:&key atIndex:4];
[invocation invoke]; [invocation invoke];
#endif
} }
#pragma mark - Public Instance Methods (Configuration) #pragma mark - Public Instance Methods (Configuration)