From f8b5b161099d6fa7b69afd12e89ef86e3aa6c210 Mon Sep 17 00:00:00 2001 From: Cameron Gutman Date: Tue, 23 Jun 2015 21:46:58 -0700 Subject: [PATCH] Create alert dialogs on the main thread --- .../StreamFrameViewController.m | 38 +++++++++++-------- 1 file changed, 23 insertions(+), 15 deletions(-) diff --git a/Limelight/ViewControllers/StreamFrameViewController.m b/Limelight/ViewControllers/StreamFrameViewController.m index d1ff8241..461937cd 100644 --- a/Limelight/ViewControllers/StreamFrameViewController.m +++ b/Limelight/ViewControllers/StreamFrameViewController.m @@ -102,24 +102,32 @@ } - (void) stageFailed:(char*)stageName withError:(long)errorCode { - UIAlertController* alert = [UIAlertController alertControllerWithTitle:@"Connection Failed" - message:[NSString stringWithFormat:@"%s failed with error %ld", - stageName, errorCode] - preferredStyle:UIAlertControllerStyleAlert]; - [alert addAction:[UIAlertAction actionWithTitle:@"Ok" style:UIAlertActionStyleDestructive handler:^(UIAlertAction* action){ - [self returnToMainFrame]; - }]]; - [self presentViewController:alert animated:YES completion:nil]; + Log(LOG_I, @"Stage %s failed: %ld", stageName, errorCode); + + dispatch_async(dispatch_get_main_queue(), ^{ + UIAlertController* alert = [UIAlertController alertControllerWithTitle:@"Connection Failed" + message:[NSString stringWithFormat:@"%s failed with error %ld", + stageName, errorCode] + preferredStyle:UIAlertControllerStyleAlert]; + [alert addAction:[UIAlertAction actionWithTitle:@"Ok" style:UIAlertActionStyleDestructive handler:^(UIAlertAction* action){ + [self returnToMainFrame]; + }]]; + [self presentViewController:alert animated:YES completion:nil]; + }); } - (void) launchFailed:(NSString*)message { - UIAlertController* alert = [UIAlertController alertControllerWithTitle:@"Connection Failed" - message:message - preferredStyle:UIAlertControllerStyleAlert]; - [alert addAction:[UIAlertAction actionWithTitle:@"Ok" style:UIAlertActionStyleDestructive handler:^(UIAlertAction* action){ - [self returnToMainFrame]; - }]]; - [self presentViewController:alert animated:YES completion:nil]; + Log(LOG_I, @"Launch failed: %@", message); + + dispatch_async(dispatch_get_main_queue(), ^{ + UIAlertController* alert = [UIAlertController alertControllerWithTitle:@"Connection Failed" + message:message + preferredStyle:UIAlertControllerStyleAlert]; + [alert addAction:[UIAlertAction actionWithTitle:@"Ok" style:UIAlertActionStyleDestructive handler:^(UIAlertAction* action){ + [self returnToMainFrame]; + }]]; + [self presentViewController:alert animated:YES completion:nil]; + }); } - (void) displayMessage:(char*)message {