From 1887ee7501b005e9225ebfd9a6d814490d765aa3 Mon Sep 17 00:00:00 2001 From: Andreas Linde Date: Fri, 12 Oct 2012 16:56:17 +0200 Subject: [PATCH] Also use old delegates in CrashManager for username and email if present, but mark them as deprecated --- Classes/BITCrashManager.m | 93 +++++++++++++++--------------- Classes/BITCrashManagerDelegate.h | 26 +++++++++ Classes/BITHockeyManagerDelegate.h | 12 ++-- 3 files changed, 78 insertions(+), 53 deletions(-) diff --git a/Classes/BITCrashManager.m b/Classes/BITCrashManager.m index e55cfab1cf..f4141ebdb1 100644 --- a/Classes/BITCrashManager.m +++ b/Classes/BITCrashManager.m @@ -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]; } diff --git a/Classes/BITCrashManagerDelegate.h b/Classes/BITCrashManagerDelegate.h index a2cada6f7d..243f42997c 100644 --- a/Classes/BITCrashManagerDelegate.h +++ b/Classes/BITCrashManagerDelegate.h @@ -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 ///----------------------------------------------------------------------------- diff --git a/Classes/BITHockeyManagerDelegate.h b/Classes/BITHockeyManagerDelegate.h index 82d5721912..032ca103a6 100644 --- a/Classes/BITHockeyManagerDelegate.h +++ b/Classes/BITHockeyManagerDelegate.h @@ -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"! */