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
};
typedef NS_ENUM(NSUInteger, BITCrashManagerUserInput) {
BITCrashManagerUserInputDontSend,
BITCrashManagerUserInputSend,
BITCrashManagerUserInputAlwaysSend
};
@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!
* @see isDebuggerAttached
*/
@property (nonatomic, assign) BITCrashManagerUserInput crashManagerUserInput;
@property (nonatomic, assign, getter=isMachExceptionHandlerEnabled) BOOL enableMachExceptionHandler;

View File

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