Fix crash presenting settings dialog off main thread

// FREEBIE
pull/1/head
Michael Kirk 7 years ago committed by Matthew Chen
parent 815c9af150
commit 9dfbf6e6bc

@ -83,30 +83,32 @@ NS_ASSUME_NONNULL_BEGIN
}; };
void (^presentSettingsDialog)(void) = ^(void) { void (^presentSettingsDialog)(void) = ^(void) {
UIAlertController *alert = [UIAlertController DispatchMainThreadSafe(^{
alertControllerWithTitle:NSLocalizedString(@"MISSING_MEDIA_LIBRARY_PERMISSION_TITLE", UIAlertController *alert = [UIAlertController
@"Alert title when user has previously denied media library access") alertControllerWithTitle:NSLocalizedString(@"MISSING_MEDIA_LIBRARY_PERMISSION_TITLE",
message:NSLocalizedString(@"MISSING_MEDIA_LIBRARY_PERMISSION_MESSAGE", @"Alert title when user has previously denied media library access")
@"Alert body when user has previously denied media library access") message:NSLocalizedString(@"MISSING_MEDIA_LIBRARY_PERMISSION_MESSAGE",
preferredStyle:UIAlertControllerStyleAlert]; @"Alert body when user has previously denied media library access")
preferredStyle:UIAlertControllerStyleAlert];
UIAlertAction *openSettingsAction =
[UIAlertAction actionWithTitle:CommonStrings.openSettingsButton UIAlertAction *openSettingsAction =
style:UIAlertActionStyleDefault [UIAlertAction actionWithTitle:CommonStrings.openSettingsButton
handler:^(UIAlertAction *_Nonnull action) { style:UIAlertActionStyleDefault
[[UIApplication sharedApplication] openSystemSettings]; handler:^(UIAlertAction *_Nonnull action) {
completionCallback(NO); [[UIApplication sharedApplication] openSystemSettings];
}]; completionCallback(NO);
[alert addAction:openSettingsAction]; }];
[alert addAction:openSettingsAction];
UIAlertAction *dismissAction = [UIAlertAction actionWithTitle:CommonStrings.dismissButton
style:UIAlertActionStyleCancel UIAlertAction *dismissAction = [UIAlertAction actionWithTitle:CommonStrings.dismissButton
handler:^(UIAlertAction *action) { style:UIAlertActionStyleCancel
completionCallback(NO); handler:^(UIAlertAction *action) {
}]; completionCallback(NO);
[alert addAction:dismissAction]; }];
[alert addAction:dismissAction];
[self presentViewController:alert animated:YES completion:nil];
[self presentViewController:alert animated:YES completion:nil];
});
}; };
if ([UIApplication sharedApplication].applicationState == UIApplicationStateBackground) { if ([UIApplication sharedApplication].applicationState == UIApplicationStateBackground) {

Loading…
Cancel
Save