| 1 | // |
|---|
| 2 | // CMCrashReporterGlobal.m |
|---|
| 3 | // CMCrashReporter-App |
|---|
| 4 | // |
|---|
| 5 | // Created by Jelle De Laender on 20/01/08. |
|---|
| 6 | // Copyright 2008 CodingMammoth. All rights reserved. |
|---|
| 7 | // Copyright 2010 CodingMammoth. Revision. All rights reserved. |
|---|
| 8 | // |
|---|
| 9 | |
|---|
| 10 | #import "CMCrashReporterGlobal.h" |
|---|
| 11 | #import <AddressBook/AddressBook.h> |
|---|
| 12 | |
|---|
| 13 | |
|---|
| 14 | NSString* mAppName = nil; |
|---|
| 15 | NSString* mAppUiName = nil; |
|---|
| 16 | NSString* mAppVersion = nil; |
|---|
| 17 | NSString* mCrashReportEmail = nil; |
|---|
| 18 | NSString* mCrashReportEmailSubject = nil; |
|---|
| 19 | NSString* mCrashReportURL = nil; |
|---|
| 20 | |
|---|
| 21 | |
|---|
| 22 | @implementation CMCrashReporterGlobal |
|---|
| 23 | |
|---|
| 24 | |
|---|
| 25 | - (void)dealloc { |
|---|
| 26 | if (mAppName != nil) |
|---|
| 27 | [mAppName release]; |
|---|
| 28 | if (mAppUiName != nil) |
|---|
| 29 | [mAppUiName release]; |
|---|
| 30 | if (mAppVersion != nil) |
|---|
| 31 | [mAppVersion release]; |
|---|
| 32 | if (mCrashReportEmail != nil) |
|---|
| 33 | [mCrashReportEmail release]; |
|---|
| 34 | if (mCrashReportEmailSubject != nil) |
|---|
| 35 | [mCrashReportEmailSubject release]; |
|---|
| 36 | if (mCrashReportURL != nil) |
|---|
| 37 | [mCrashReportURL release]; |
|---|
| 38 | |
|---|
| 39 | [super dealloc]; |
|---|
| 40 | } |
|---|
| 41 | |
|---|
| 42 | |
|---|
| 43 | + (NSString *)appName |
|---|
| 44 | { |
|---|
| 45 | if (mAppName != NULL) |
|---|
| 46 | return mAppName; |
|---|
| 47 | else |
|---|
| 48 | return [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleName"]; |
|---|
| 49 | } |
|---|
| 50 | |
|---|
| 51 | + (NSString *)appUiName |
|---|
| 52 | { |
|---|
| 53 | if (mAppUiName != NULL) |
|---|
| 54 | return mAppUiName; |
|---|
| 55 | else |
|---|
| 56 | return [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleName"]; |
|---|
| 57 | } |
|---|
| 58 | |
|---|
| 59 | + (NSString *)appVersion |
|---|
| 60 | { |
|---|
| 61 | if (mAppVersion != NULL) |
|---|
| 62 | return mAppVersion; |
|---|
| 63 | else |
|---|
| 64 | return [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleVersion"]; |
|---|
| 65 | } |
|---|
| 66 | |
|---|
| 67 | + (int)numberOfMaximumReports { |
|---|
| 68 | if (! [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CMMaxReports"]) return 0; |
|---|
| 69 | |
|---|
| 70 | return [[[[NSBundle mainBundle] infoDictionary] objectForKey:@"CMMaxReports"] intValue]; |
|---|
| 71 | } |
|---|
| 72 | |
|---|
| 73 | + (BOOL)isRunningLeopard |
|---|
| 74 | { |
|---|
| 75 | SInt32 MacVersion; |
|---|
| 76 | Gestalt(gestaltSystemVersion, &MacVersion); |
|---|
| 77 | return MacVersion >= 4176; |
|---|
| 78 | } |
|---|
| 79 | |
|---|
| 80 | + (BOOL)checkOnCrashes |
|---|
| 81 | { |
|---|
| 82 | // Integration for later |
|---|
| 83 | return YES; |
|---|
| 84 | } |
|---|
| 85 | |
|---|
| 86 | + (NSString *)crashReportURL |
|---|
| 87 | { |
|---|
| 88 | NSString *value; |
|---|
| 89 | if (mCrashReportURL != NULL) |
|---|
| 90 | value = mCrashReportURL; |
|---|
| 91 | else |
|---|
| 92 | value = [[[NSBundle mainBundle] infoDictionary] |
|---|
| 93 | objectForKey:@"CMSubmitURL"]; |
|---|
| 94 | if (!value) NSLog(@"Warning: No CMSubmitURL - key available for CMCrashReporter. Please add this key at your info.plist file."); |
|---|
| 95 | return value; |
|---|
| 96 | } |
|---|
| 97 | |
|---|
| 98 | + (NSString *)crashReportEmail |
|---|
| 99 | { |
|---|
| 100 | NSString *email; |
|---|
| 101 | if (mCrashReportURL != NULL) |
|---|
| 102 | email = mCrashReportEmail; |
|---|
| 103 | else |
|---|
| 104 | { |
|---|
| 105 | ABMultiValue *emails = [[[ABAddressBook sharedAddressBook] me] valueForProperty: kABEmailProperty]; |
|---|
| 106 | email = (NSString *) [emails valueAtIndex: [emails indexForIdentifier: [emails primaryIdentifier]]]; |
|---|
| 107 | } |
|---|
| 108 | |
|---|
| 109 | return email; |
|---|
| 110 | } |
|---|
| 111 | |
|---|
| 112 | + (NSString *)osVersion |
|---|
| 113 | { |
|---|
| 114 | return [[NSDictionary dictionaryWithContentsOfFile:@"/System/Library/CoreServices/SystemVersion.plist"] |
|---|
| 115 | objectForKey:@"ProductVersion"]; |
|---|
| 116 | } |
|---|
| 117 | |
|---|
| 118 | + (void)setAppName:(NSString *)name |
|---|
| 119 | { |
|---|
| 120 | mAppName = name; |
|---|
| 121 | } |
|---|
| 122 | |
|---|
| 123 | + (void)setAppUiName:(NSString *)name |
|---|
| 124 | { |
|---|
| 125 | mAppUiName = name; |
|---|
| 126 | } |
|---|
| 127 | |
|---|
| 128 | + (void)setAppVersion:(NSString *)version |
|---|
| 129 | { |
|---|
| 130 | mAppVersion = version; |
|---|
| 131 | } |
|---|
| 132 | |
|---|
| 133 | + (void)setCrashReportEmail:(NSString *)emailTo |
|---|
| 134 | { |
|---|
| 135 | mCrashReportEmail = emailTo; |
|---|
| 136 | } |
|---|
| 137 | |
|---|
| 138 | + (void)setCrashReportURL:(NSString *)reportServerUrl |
|---|
| 139 | { |
|---|
| 140 | mCrashReportURL = reportServerUrl; |
|---|
| 141 | } |
|---|
| 142 | |
|---|
| 143 | |
|---|
| 144 | @end |
|---|
| 145 | |
|---|