From 3847e46e270eab1671b570b28a8354d35f571d97 Mon Sep 17 00:00:00 2001 From: "Pfeil, Scott Robert" Date: Tue, 6 Aug 2019 15:17:05 -0400 Subject: [PATCH] Core defects fix --- .../MVMCore/PresentationHandling/MVMCoreNavigationHandler.m | 6 ++++-- MVMCore/MVMCore/Utility/MVMCoreErrorObject.m | 5 ++++- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/MVMCore/MVMCore/PresentationHandling/MVMCoreNavigationHandler.m b/MVMCore/MVMCore/PresentationHandling/MVMCoreNavigationHandler.m index 0feddeb..186f4ff 100644 --- a/MVMCore/MVMCore/PresentationHandling/MVMCoreNavigationHandler.m +++ b/MVMCore/MVMCore/PresentationHandling/MVMCoreNavigationHandler.m @@ -292,7 +292,8 @@ - (void)dismissTopViewControllerAnimated:(BOOL)animated delegate:(nullable NSObject*)delegate completionHandler:(nullable void (^)(void))completionBlock { // Dismiss on the main navigation controller. - MVMCoreDismissViewControllerOperation *operation = [[MVMCoreDismissViewControllerOperation alloc] initAndDismissTopViewController:self.navigationController animated:animated]; + UIViewController *controllerToPresentOn = self.viewControllerToPresentOn ?: [UIApplication sharedApplication].keyWindow.rootViewController; + MVMCoreDismissViewControllerOperation *operation = [[MVMCoreDismissViewControllerOperation alloc] initAndDismissTopViewController:controllerToPresentOn animated:animated]; operation.completionBlock = completionBlock; [[NSOperationQueue mainQueue] addOperation:operation]; } @@ -307,7 +308,8 @@ - (void)dismissToBottom:(BOOL)animated delegate:(nullable NSObject*)delegate completionHandler:(nullable void (^)(void))completionBlock { // Dismiss on the main navigation controller. - MVMCoreDismissViewControllerOperation *operation = [[MVMCoreDismissViewControllerOperation alloc] initAndDismissViewController:self.navigationController animated:animated]; + UIViewController *controllerToPresentOn = self.viewControllerToPresentOn ?: [UIApplication sharedApplication].keyWindow.rootViewController; + MVMCoreDismissViewControllerOperation *operation = [[MVMCoreDismissViewControllerOperation alloc] initAndDismissViewController:controllerToPresentOn animated:animated]; operation.completionBlock = completionBlock; [[NSOperationQueue mainQueue] addOperation:operation]; } diff --git a/MVMCore/MVMCore/Utility/MVMCoreErrorObject.m b/MVMCore/MVMCore/Utility/MVMCoreErrorObject.m index 9354326..9b28934 100644 --- a/MVMCore/MVMCore/Utility/MVMCoreErrorObject.m +++ b/MVMCore/MVMCore/Utility/MVMCoreErrorObject.m @@ -13,6 +13,7 @@ #import "NSDictionary+MFConvenience.h" #import "MVMCoreJSONConstants.h" #import "MVMCoreHardcodedStringsConstants.h" +#import "MVMCoreDispatchUtility.h" @implementation MVMCoreErrorObject @@ -26,7 +27,9 @@ self.domain = domain; self.location = location; self.date = [NSDate date]; - self.applicationState = [UIApplication sharedApplication].applicationState; + [MVMCoreDispatchUtility performSyncBlockOnMainThread:^{ + self.applicationState = [UIApplication sharedApplication].applicationState; + }]; // We don't log server errors. if (![domain isEqualToString:ErrorDomainServer]) {