queue changes

This commit is contained in:
Scott Pfeil 2023-04-18 19:39:45 -04:00
parent 15ca6142fe
commit 38cb3eb80e
3 changed files with 27 additions and 34 deletions

View File

@ -8,6 +8,7 @@
#import "MVMCoreDismissViewControllerOperation.h" #import "MVMCoreDismissViewControllerOperation.h"
#import "MVMCoreConstants.h" #import "MVMCoreConstants.h"
#import "MVMCoreDispatchUtility.h"
typedef NS_ENUM(NSInteger, DismissType) { typedef NS_ENUM(NSInteger, DismissType) {
DismissTypeTop = 0, DismissTypeTop = 0,
@ -49,6 +50,7 @@ typedef NS_ENUM(NSInteger, DismissType) {
return; return;
} }
[MVMCoreDispatchUtility performBlockOnMainThread:^{
switch (self.type) { switch (self.type) {
case DismissTypeTop: case DismissTypeTop:
{ {
@ -72,6 +74,7 @@ typedef NS_ENUM(NSInteger, DismissType) {
default: default:
break; break;
} }
}];
} }
- (void)dismissViewController:(nonnull UIViewController *)viewController { - (void)dismissViewController:(nonnull UIViewController *)viewController {

View File

@ -136,9 +136,6 @@
// Use this to dismiss all presented view controllers stacked on the bottom one. // Use this to dismiss all presented view controllers stacked on the bottom one.
- (void)dismissToBottom:(BOOL)animated; - (void)dismissToBottom:(BOOL)animated;
// Removes all queued up items.
- (void)cancelPresentation;
#pragma mark - Presentation Extra #pragma mark - Presentation Extra
// Use this to present. // Use this to present.

View File

@ -46,9 +46,6 @@
self.navigationQueue = [[NSOperationQueue alloc] init]; self.navigationQueue = [[NSOperationQueue alloc] init];
self.navigationQueue.maxConcurrentOperationCount = 1; self.navigationQueue.maxConcurrentOperationCount = 1;
self.presentationQueue = [[NSOperationQueue alloc] init];
self.presentationQueue.maxConcurrentOperationCount = 1;
self.delegates = (NSHashTable <MVMCorePresentationDelegateProtocol>*)[NSHashTable weakObjectsHashTable]; self.delegates = (NSHashTable <MVMCorePresentationDelegateProtocol>*)[NSHashTable weakObjectsHashTable];
} }
return self; return self;
@ -308,10 +305,6 @@
[self dismissToBottom:animated delegate:nil completionHandler:NULL]; [self dismissToBottom:animated delegate:nil completionHandler:NULL];
} }
- (void)cancelPresentation {
[self.presentationQueue cancelAllOperations];
}
#pragma mark - Presentation Extra #pragma mark - Presentation Extra
- (void)presentViewController:(nonnull UIViewController *)viewController animated:(BOOL)animated delegate:(nullable NSObject<MVMCorePresentationDelegateProtocol>*)delegate completionHandler:(nullable void (^)(void))completionBlock { - (void)presentViewController:(nonnull UIViewController *)viewController animated:(BOOL)animated delegate:(nullable NSObject<MVMCorePresentationDelegateProtocol>*)delegate completionHandler:(nullable void (^)(void))completionBlock {
@ -325,7 +318,7 @@
MVMCorePresentViewControllerOperation *operation = [[MVMCorePresentViewControllerOperation alloc] initWithPresentingViewController:controllerToPresentOn presentedViewController:viewController animated:animated]; MVMCorePresentViewControllerOperation *operation = [[MVMCorePresentViewControllerOperation alloc] initWithPresentingViewController:controllerToPresentOn presentedViewController:viewController animated:animated];
operation.delegate = delegate; operation.delegate = delegate;
operation.completionBlock = completionBlock; operation.completionBlock = completionBlock;
[self.presentationQueue addOperation:operation]; [self.navigationQueue addOperation:operation];
} }
}]; }];
} }
@ -336,7 +329,7 @@
UIViewController *controllerToPresentOn = self.viewControllerToPresentOn ?: [MVMCoreGetterUtility getKeyWindow].rootViewController; UIViewController *controllerToPresentOn = self.viewControllerToPresentOn ?: [MVMCoreGetterUtility getKeyWindow].rootViewController;
MVMCoreDismissViewControllerOperation *operation = [[MVMCoreDismissViewControllerOperation alloc] initAndDismissTopViewController:controllerToPresentOn animated:animated]; MVMCoreDismissViewControllerOperation *operation = [[MVMCoreDismissViewControllerOperation alloc] initAndDismissTopViewController:controllerToPresentOn animated:animated];
operation.completionBlock = completionBlock; operation.completionBlock = completionBlock;
[[NSOperationQueue mainQueue] addOperation:operation]; [self.navigationQueue addOperation:operation];
}]; }];
} }
@ -344,7 +337,7 @@
MVMCoreDismissViewControllerOperation *operation = [[MVMCoreDismissViewControllerOperation alloc] initAndDismissViewController:viewController animated:animated]; MVMCoreDismissViewControllerOperation *operation = [[MVMCoreDismissViewControllerOperation alloc] initAndDismissViewController:viewController animated:animated];
operation.completionBlock = completionBlock; operation.completionBlock = completionBlock;
[[NSOperationQueue mainQueue] addOperation:operation]; [self.navigationQueue addOperation:operation];
} }
- (void)dismissToBottom:(BOOL)animated delegate:(nullable NSObject<MVMCorePresentationDelegateProtocol>*)delegate completionHandler:(nullable void (^)(void))completionBlock { - (void)dismissToBottom:(BOOL)animated delegate:(nullable NSObject<MVMCorePresentationDelegateProtocol>*)delegate completionHandler:(nullable void (^)(void))completionBlock {
@ -353,7 +346,7 @@
UIViewController *controllerToPresentOn = self.viewControllerToPresentOn ?: [MVMCoreGetterUtility getKeyWindow].rootViewController; UIViewController *controllerToPresentOn = self.viewControllerToPresentOn ?: [MVMCoreGetterUtility getKeyWindow].rootViewController;
MVMCoreDismissViewControllerOperation *operation = [[MVMCoreDismissViewControllerOperation alloc] initAndDismissViewController:controllerToPresentOn animated:animated]; MVMCoreDismissViewControllerOperation *operation = [[MVMCoreDismissViewControllerOperation alloc] initAndDismissViewController:controllerToPresentOn animated:animated];
operation.completionBlock = completionBlock; operation.completionBlock = completionBlock;
[[NSOperationQueue mainQueue] addOperation:operation]; [self.navigationQueue addOperation:operation];
}]; }];
} }