From 9f9f44916a1b6bb706da292c672b37ce1bee3a6f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lukas=20Spie=C3=9F?= Date: Wed, 16 Apr 2014 12:50:45 +0200 Subject: [PATCH] adds public method to handle user input from an alert view --- Classes/BITCrashManager.h | 5 +++ Classes/BITCrashManager.m | 69 ++++++++++++++++++++++++--------------- 2 files changed, 47 insertions(+), 27 deletions(-) diff --git a/Classes/BITCrashManager.h b/Classes/BITCrashManager.h index dfff2f67f4..97d39c214a 100644 --- a/Classes/BITCrashManager.h +++ b/Classes/BITCrashManager.h @@ -247,6 +247,11 @@ typedef NS_ENUM(NSUInteger, BITCrashManagerUserInput) { */ @property (nonatomic, readonly) BOOL didCrashInLastSession; +/** +Provides an interface to handle user input from a custom alert + @return BOOl if the input is a valid option + */ +- (BOOL)handleUserInput: (BITCrashManagerUserInput) userInput; /** Provides the time between startup and crash in seconds diff --git a/Classes/BITCrashManager.m b/Classes/BITCrashManager.m index 8dfff2863b..1bc77ea7a9 100644 --- a/Classes/BITCrashManager.m +++ b/Classes/BITCrashManager.m @@ -487,6 +487,36 @@ NSString *const kBITCrashManagerStatus = @"BITCrashManagerStatus"; } } +- (BOOL)handleUserInput:(BITCrashManagerUserInput)userInput { + switch (userInput) { + case BITCrashManagerUserInputDontSend: + if (self.delegate != nil && [self.delegate respondsToSelector:@selector(crashManagerWillCancelSendingCrashReport:)]) { + [self.delegate crashManagerWillCancelSendingCrashReport:self]; + } + + [self cleanCrashReports]; + YES; + + case BITCrashManagerUserInputSend: + [self sendCrashReports]; + YES; + + case BITCrashManagerUserInputAlwaysSend: + _crashManagerStatus = BITCrashManagerStatusAutoSend; + [[NSUserDefaults standardUserDefaults] setInteger:_crashManagerStatus forKey:kBITCrashManagerStatus]; + [[NSUserDefaults standardUserDefaults] synchronize]; + if (self.delegate != nil && [self.delegate respondsToSelector:@selector(crashManagerWillSendCrashReportsAlways:)]) { + [self.delegate crashManagerWillSendCrashReportsAlways:self]; + } + + [self sendCrashReports]; + return YES; + + default: + return NO; + } + +} #pragma mark - PLCrashReporter @@ -930,35 +960,20 @@ NSString *const kBITCrashManagerStatus = @"BITCrashManagerStatus"; #pragma mark - UIAlertView Delegate - (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex { - [self handleUserInput:buttonIndex]; + switch (buttonIndex) { + case 0: + [self handleUserInput:BITCrashManagerUserInputDontSend]; + break; + case 1: + [self handleUserInput:BITCrashManagerUserInputSend]; + break; + case 2: + [self handleUserInput:BITCrashManagerUserInputAlwaysSend]; + break; + } } -- (void)handleUserInput:(BITCrashManagerUserInput)userInput { - switch (userInput) { - case BITCrashManagerUserInputDontSend: - if (self.delegate != nil && [self.delegate respondsToSelector:@selector(crashManagerWillCancelSendingCrashReport:)]) { - [self.delegate crashManagerWillCancelSendingCrashReport:self]; - } - - _sendingInProgress = NO; - [self cleanCrashReports]; - break; - case BITCrashManagerUserInputSend: - [self sendCrashReports]; - break; - case BITCrashManagerUserInputAlwaysSend: - _crashManagerStatus = BITCrashManagerStatusAutoSend; - [[NSUserDefaults standardUserDefaults] setInteger:_crashManagerStatus forKey:kBITCrashManagerStatus]; - [[NSUserDefaults standardUserDefaults] synchronize]; - if (self.delegate != nil && [self.delegate respondsToSelector:@selector(crashManagerWillSendCrashReportsAlways:)]) { - [self.delegate crashManagerWillSendCrashReportsAlways:self]; - } - - [self sendCrashReports]; - break; - } - -} + #pragma mark - Networking