blob: 3d7224edeecaa12498d920de59821cd45d11b190 [file] [log] [blame]
// Copyright 2016 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#import "ios/chrome/browser/ui/elements/activity_overlay_coordinator.h"
#import "ios/chrome/browser/ui/elements/activity_overlay_view_controller.h"
#import "ios/chrome/browser/ui/uikit_ui_util.h"
#if !defined(__has_feature) || !__has_feature(objc_arc)
#error "This file requires ARC support."
#endif
@interface ActivityOverlayCoordinator ()
// View controller that displays an activity indicator.
@property(nonatomic, strong) UIViewController* activityOverlayViewController;
@end
@implementation ActivityOverlayCoordinator
@synthesize activityOverlayViewController = _activityOverlayViewController;
- (void)start {
if (self.activityOverlayViewController)
return;
self.activityOverlayViewController =
[[ActivityOverlayViewController alloc] initWithNibName:nil bundle:nil];
[self.baseViewController
addChildViewController:self.activityOverlayViewController];
[self.baseViewController.view
addSubview:self.activityOverlayViewController.view];
[self.activityOverlayViewController
didMoveToParentViewController:self.baseViewController];
AddSameConstraints(self.baseViewController.view,
self.activityOverlayViewController.view);
}
- (void)stop {
if (!self.activityOverlayViewController)
return;
[self.activityOverlayViewController willMoveToParentViewController:nil];
[self.activityOverlayViewController.view removeFromSuperview];
[self.activityOverlayViewController removeFromParentViewController];
self.activityOverlayViewController = nil;
}
@end