Also use old delegates in CrashManager for username and email if present, but mark them as deprecated

This commit is contained in:
Andreas Linde
2012-10-12 16:56:17 +02:00
parent f34d458d95
commit 1887ee7501
3 changed files with 78 additions and 53 deletions

View File

@@ -264,6 +264,46 @@
}
- (NSString *)userNameForCrashReport {
NSString *username = @"";
if (self.delegate && [self.delegate respondsToSelector:@selector(userNameForCrashManager:)]) {
BITHockeyLog(@"DEPRECATED: Please user BITHockeyManagerDelegate's userNameForHockeyManager:componentManager: or userIDForHockeyManager:componentManager: instead.");
username = [self.delegate userNameForCrashManager:self];
}
if ([BITHockeyManager sharedHockeyManager].delegate &&
[[BITHockeyManager sharedHockeyManager].delegate respondsToSelector:@selector(userNameForHockeyManager:componentManager:)]) {
username = [[BITHockeyManager sharedHockeyManager].delegate
userNameForHockeyManager:[BITHockeyManager sharedHockeyManager]
componentManager:self];
}
if ([BITHockeyManager sharedHockeyManager].delegate &&
[[BITHockeyManager sharedHockeyManager].delegate respondsToSelector:@selector(userIDForHockeyManager:componentManager:)]) {
username = [[BITHockeyManager sharedHockeyManager].delegate
userIDForHockeyManager:[BITHockeyManager sharedHockeyManager]
componentManager:self];
}
return username;
}
- (NSString *)userEmailForCrashReport {
NSString *useremail = @"";
if (self.delegate && [self.delegate respondsToSelector:@selector(userEmailForCrashManager:)]) {
BITHockeyLog(@"DEPRECATED: Please user BITHockeyManagerDelegate's userEmailForHockeyManager:componentManager: instead.");
useremail = [self.delegate userEmailForCrashManager:self];
}
if ([BITHockeyManager sharedHockeyManager].delegate &&
[[BITHockeyManager sharedHockeyManager].delegate respondsToSelector:@selector(userEmailForHockeyManager:componentManager:)]) {
useremail = [[BITHockeyManager sharedHockeyManager].delegate
userEmailForHockeyManager:[BITHockeyManager sharedHockeyManager]
componentManager:self];
}
return useremail;
}
#pragma mark - PLCrashReporter
// Called to handle a pending crash report.
@@ -292,32 +332,11 @@
// write the meta file
NSMutableDictionary *metaDict = [NSMutableDictionary dictionaryWithCapacity:4];
NSString *username = @"";
NSString *useremail = @"";
NSString *applicationLog = @"";
NSString *errorString = nil;
if ([BITHockeyManager sharedHockeyManager].delegate &&
[[BITHockeyManager sharedHockeyManager].delegate respondsToSelector:@selector(userNameForHockeyManager:componentManager:)]) {
username = [[BITHockeyManager sharedHockeyManager].delegate
userNameForHockeyManager:[BITHockeyManager sharedHockeyManager]
componentManager:self];
}
if ([BITHockeyManager sharedHockeyManager].delegate &&
[[BITHockeyManager sharedHockeyManager].delegate respondsToSelector:@selector(userIDForHockeyManager:componentManager:)]) {
username = [[BITHockeyManager sharedHockeyManager].delegate
userIDForHockeyManager:[BITHockeyManager sharedHockeyManager]
componentManager:self];
}
[metaDict setObject:username forKey:kBITCrashMetaUserName];
if ([BITHockeyManager sharedHockeyManager].delegate &&
[[BITHockeyManager sharedHockeyManager].delegate respondsToSelector:@selector(userEmailForHockeyManager:componentManager:)]) {
useremail = [[BITHockeyManager sharedHockeyManager].delegate
userEmailForHockeyManager:[BITHockeyManager sharedHockeyManager]
componentManager:self];
}
[metaDict setObject:useremail forKey:kBITCrashMetaUserEmail];
[metaDict setObject:[self userNameForCrashReport] forKey:kBITCrashMetaUserName];
[metaDict setObject:[self userEmailForCrashReport] forKey:kBITCrashMetaUserEmail];
if (self.delegate != nil && [self.delegate respondsToSelector:@selector(applicationLogForCrashManager:)]) {
applicationLog = [self.delegate applicationLogForCrashManager:self] ?: @"";
@@ -429,30 +448,10 @@
NSString *alertDescription = [NSString stringWithFormat:BITHockeyLocalizedString(@"CrashDataFoundAnonymousDescription"), appName];
// the crash report is not anynomous any more if username or useremail are not nil
NSString *username = nil;
NSString *useremail = nil;
if ([BITHockeyManager sharedHockeyManager].delegate &&
[[BITHockeyManager sharedHockeyManager].delegate respondsToSelector:@selector(userNameForHockeyManager:componentManager:)]) {
username = [[BITHockeyManager sharedHockeyManager].delegate
userNameForHockeyManager:[BITHockeyManager sharedHockeyManager]
componentManager:self];
}
if ([BITHockeyManager sharedHockeyManager].delegate &&
[[BITHockeyManager sharedHockeyManager].delegate respondsToSelector:@selector(userIDForHockeyManager:componentManager:)]) {
username = [[BITHockeyManager sharedHockeyManager].delegate
userIDForHockeyManager:[BITHockeyManager sharedHockeyManager]
componentManager:self];
}
if ([BITHockeyManager sharedHockeyManager].delegate &&
[[BITHockeyManager sharedHockeyManager].delegate respondsToSelector:@selector(userEmailForHockeyManager:componentManager:)]) {
useremail = [[BITHockeyManager sharedHockeyManager].delegate
userEmailForHockeyManager:[BITHockeyManager sharedHockeyManager]
componentManager:self];
}
if (username || useremail) {
NSString *username = [self userNameForCrashReport];
NSString *useremail = [self userEmailForCrashReport];
if ((username && [username length] > 0) || (useremail && [useremail length] > 0)) {
alertDescription = [NSString stringWithFormat:BITHockeyLocalizedString(@"CrashDataFoundDescription"), appName];
}

View File

@@ -54,6 +54,32 @@
/** Return the user name or userid that should be send along each crash report
@param crashManager The `BITCrashManager` instance invoking this delegate
@see applicationLogForCrashManager:
@see userEmailForCrashManager:
@deprecated Please use `BITHockeyManagerDelegate userNameForHockeyManager:componentManager:` instead
@warning When returning a non nil value, crash reports are not anonymous any
more and the alerts will not show the "anonymous" word!
*/
-(NSString *)userNameForCrashManager:(BITCrashManager *)crashManager;
/** Return the users email address that should be send along each crash report
@param crashManager The `BITCrashManager` instance invoking this delegate
@see applicationLogForCrashManager:
@see userNameForCrashManager:
@deprecated Please use `BITHockeyManagerDelegate userEmailForHockeyManager:componentManager:` instead
@warning When returning a non nil value, crash reports are not anonymous any
more and the alerts will not show the "anonymous" word!
*/
-(NSString *)userEmailForCrashManager:(BITCrashManager *)crashManager;
///-----------------------------------------------------------------------------
/// @name Alert
///-----------------------------------------------------------------------------

View File

@@ -94,8 +94,8 @@
@param hockeyManager The `BITHockeyManager` HockeyManager instance invoking this delegate
@param componentManager The `BITHockeyBaseManager` component instance invoking this delegate
@see userNameForHockeyManager:
@see userEmailForHockeyManager:
@see userNameForHockeyManager:componentManager:
@see userEmailForHockeyManager:componentManager:
@warning When returning a non nil value for the `BITCrashManager` component, crash reports
are not anonymous any more and the crash alerts will not show the word "anonymous"!
*/
@@ -121,8 +121,8 @@
@param hockeyManager The `BITHockeyManager` HockeyManager instance invoking this delegate
@param componentManager The `BITHockeyBaseManager` component instance invoking this delegate
@see userIDForHockeyManager:
@see userEmailForHockeyManager:
@see userIDForHockeyManager:componentManager:
@see userEmailForHockeyManager:componentManager:
@warning When returning a non nil value for the `BITCrashManager` component, crash reports
are not anonymous any more and the crash alerts will not show the word "anonymous"!
*/
@@ -148,8 +148,8 @@
@param hockeyManager The `BITHockeyManager` HockeyManager instance invoking this delegate
@param componentManager The `BITHockeyBaseManager` component instance invoking this delegate
@see userIDForHockeyManager:
@see userNameForHockeyManager:
@see userIDForHockeyManager:componentManager:
@see userNameForHockeyManager:componentManager:
@warning When returning a non nil value for the `BITCrashManager` component, crash reports
are not anonymous any more and the crash alerts will not show the word "anonymous"!
*/