mirror of https://github.com/opa334/TrollStore.git
81 lines
2.1 KiB
Objective-C
81 lines
2.1 KiB
Objective-C
#import "TSPresentationDelegate.h"
|
|
|
|
@implementation TSPresentationDelegate
|
|
|
|
static UIViewController* g_presentationViewController;
|
|
static UIAlertController* g_activityController;
|
|
|
|
+ (UIViewController*)presentationViewController
|
|
{
|
|
return g_presentationViewController;
|
|
}
|
|
|
|
+ (void)setPresentationViewController:(UIViewController*)vc
|
|
{
|
|
g_presentationViewController = vc;
|
|
}
|
|
|
|
+ (UIAlertController*)activityController
|
|
{
|
|
return g_activityController;
|
|
}
|
|
|
|
+ (void)setActivityController:(UIAlertController*)ac
|
|
{
|
|
g_activityController = ac;
|
|
}
|
|
|
|
+ (void)startActivity:(NSString*)activity withCancelHandler:(void (^)(void))cancelHandler
|
|
{
|
|
if(self.activityController)
|
|
{
|
|
self.activityController.title = activity;
|
|
}
|
|
else
|
|
{
|
|
self.activityController = [UIAlertController alertControllerWithTitle:activity message:@"" preferredStyle:UIAlertControllerStyleAlert];
|
|
UIActivityIndicatorView* activityIndicator = [[UIActivityIndicatorView alloc] initWithFrame:CGRectMake(5,5,50,50)];
|
|
activityIndicator.hidesWhenStopped = YES;
|
|
activityIndicator.activityIndicatorViewStyle = UIActivityIndicatorViewStyleMedium;
|
|
[activityIndicator startAnimating];
|
|
[self.activityController.view addSubview:activityIndicator];
|
|
|
|
if(cancelHandler)
|
|
{
|
|
UIAlertAction* cancelAction = [UIAlertAction actionWithTitle:@"Cancel" style:UIAlertActionStyleCancel handler:^(UIAlertAction* action)
|
|
{
|
|
self.activityController = nil;
|
|
cancelHandler();
|
|
}];
|
|
[self.activityController addAction:cancelAction];
|
|
}
|
|
|
|
[self presentViewController:self.activityController animated:YES completion:nil];
|
|
}
|
|
}
|
|
|
|
+ (void)startActivity:(NSString*)activity
|
|
{
|
|
[self startActivity:activity withCancelHandler:nil];
|
|
}
|
|
|
|
+ (void)stopActivityWithCompletion:(void (^)(void))completion
|
|
{
|
|
if(!self.activityController) return;
|
|
|
|
[self.activityController dismissViewControllerAnimated:YES completion:^
|
|
{
|
|
self.activityController = nil;
|
|
if(completion)
|
|
{
|
|
completion();
|
|
}
|
|
}];
|
|
}
|
|
|
|
+ (void)presentViewController:(UIViewController *)viewControllerToPresent animated:(BOOL)flag completion:(void (^)(void))completion
|
|
{
|
|
[self.presentationViewController presentViewController:viewControllerToPresent animated:flag completion:completion];
|
|
}
|
|
|
|
@end |