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 | |
---|