start refactoring AlertView delegate

This commit is contained in:
Lukas Spieß
2014-03-28 12:30:45 +01:00
parent 0765c93f1b
commit c62b444272
2 changed files with 42 additions and 27 deletions

View File

@@ -58,6 +58,16 @@ typedef NS_ENUM(NSUInteger, BITCrashManagerStatus) {
BITCrashManagerStatusAutoSend = 2 BITCrashManagerStatusAutoSend = 2
}; };
typedef NS_ENUM(NSUInteger, BITCrashManagerUserInput) {
BITCrashManagerUserInputDontSend,
BITCrashManagerUserInputSend,
BITCrashManagerUserInputAlwaysSend
};
@protocol BITCrashManagerDelegate; @protocol BITCrashManagerDelegate;
@@ -163,6 +173,10 @@ typedef NS_ENUM(NSUInteger, BITCrashManagerStatus) {
* the debugger during runtime, this may cause issues the Mach exception handler is enabled! * the debugger during runtime, this may cause issues the Mach exception handler is enabled!
* @see isDebuggerAttached * @see isDebuggerAttached
*/ */
@property (nonatomic, assign) BITCrashManagerUserInput crashManagerUserInput;
@property (nonatomic, assign, getter=isMachExceptionHandlerEnabled) BOOL enableMachExceptionHandler; @property (nonatomic, assign, getter=isMachExceptionHandlerEnabled) BOOL enableMachExceptionHandler;

View File

@@ -930,8 +930,13 @@ NSString *const kBITCrashManagerStatus = @"BITCrashManagerStatus";
#pragma mark - UIAlertView Delegate #pragma mark - UIAlertView Delegate
- (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex { - (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex {
switch (buttonIndex) { _crashManagerUserInput = buttonIndex;
case 0: [self handleUserInput];
}
- (void)handleUserInput {
switch (_crashManagerUserInput) {
case BITCrashManagerUserInputDontSend:
if (self.delegate != nil && [self.delegate respondsToSelector:@selector(crashManagerWillCancelSendingCrashReport:)]) { if (self.delegate != nil && [self.delegate respondsToSelector:@selector(crashManagerWillCancelSendingCrashReport:)]) {
[self.delegate crashManagerWillCancelSendingCrashReport:self]; [self.delegate crashManagerWillCancelSendingCrashReport:self];
} }
@@ -939,10 +944,10 @@ NSString *const kBITCrashManagerStatus = @"BITCrashManagerStatus";
_sendingInProgress = NO; _sendingInProgress = NO;
[self cleanCrashReports]; [self cleanCrashReports];
break; break;
case 1: case BITCrashManagerUserInputSend:
[self sendCrashReports]; [self sendCrashReports];
break; break;
case 2: { case BITCrashManagerUserInputAlwaysSend:
_crashManagerStatus = BITCrashManagerStatusAutoSend; _crashManagerStatus = BITCrashManagerStatusAutoSend;
[[NSUserDefaults standardUserDefaults] setInteger:_crashManagerStatus forKey:kBITCrashManagerStatus]; [[NSUserDefaults standardUserDefaults] setInteger:_crashManagerStatus forKey:kBITCrashManagerStatus];
[[NSUserDefaults standardUserDefaults] synchronize]; [[NSUserDefaults standardUserDefaults] synchronize];
@@ -953,11 +958,7 @@ NSString *const kBITCrashManagerStatus = @"BITCrashManagerStatus";
[self sendCrashReports]; [self sendCrashReports];
break; break;
} }
default:
_sendingInProgress = NO;
[self cleanCrashReports];
break;
}
} }