| OLD | NEW |
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #import "ios/chrome/browser/ui/elements/activity_overlay_coordinator.h" | 5 #import "ios/chrome/browser/ui/elements/activity_overlay_coordinator.h" |
| 6 | 6 |
| 7 #import "base/mac/objc_property_releaser.h" | |
| 8 #import "ios/chrome/browser/ui/elements/activity_overlay_view_controller.h" | 7 #import "ios/chrome/browser/ui/elements/activity_overlay_view_controller.h" |
| 9 #import "ios/chrome/browser/ui/uikit_ui_util.h" | 8 #import "ios/chrome/browser/ui/uikit_ui_util.h" |
| 10 | 9 |
| 11 @interface ActivityOverlayCoordinator () { | 10 #if !defined(__has_feature) || !__has_feature(objc_arc) |
| 12 base::mac::ObjCPropertyReleaser _propertyReleaser_ActivityOverlayCoordinator; | 11 #error "This file requires ARC support." |
| 13 } | 12 #endif |
| 14 | 13 |
| 14 @interface ActivityOverlayCoordinator () |
| 15 // View controller that displays an activity indicator. | 15 // View controller that displays an activity indicator. |
| 16 @property(nonatomic, retain) UIViewController* activityOverlayViewController; | 16 @property(nonatomic, strong) UIViewController* activityOverlayViewController; |
| 17 @end | 17 @end |
| 18 | 18 |
| 19 @implementation ActivityOverlayCoordinator | 19 @implementation ActivityOverlayCoordinator |
| 20 | 20 |
| 21 @synthesize activityOverlayViewController = _activityOverlayViewController; | 21 @synthesize activityOverlayViewController = _activityOverlayViewController; |
| 22 | 22 |
| 23 - (nullable instancetype)initWithBaseViewController: | |
| 24 (UIViewController*)viewController { | |
| 25 self = [super initWithBaseViewController:viewController]; | |
| 26 if (self) { | |
| 27 _propertyReleaser_ActivityOverlayCoordinator.Init( | |
| 28 self, [ActivityOverlayCoordinator class]); | |
| 29 } | |
| 30 return self; | |
| 31 } | |
| 32 | |
| 33 - (void)start { | 23 - (void)start { |
| 34 if (self.activityOverlayViewController) | 24 if (self.activityOverlayViewController) |
| 35 return; | 25 return; |
| 36 self.activityOverlayViewController = | 26 self.activityOverlayViewController = |
| 37 [[[ActivityOverlayViewController alloc] initWithNibName:nil bundle:nil] | 27 [[ActivityOverlayViewController alloc] initWithNibName:nil bundle:nil]; |
| 38 autorelease]; | |
| 39 [self.baseViewController | 28 [self.baseViewController |
| 40 addChildViewController:self.activityOverlayViewController]; | 29 addChildViewController:self.activityOverlayViewController]; |
| 41 [self.baseViewController.view | 30 [self.baseViewController.view |
| 42 addSubview:self.activityOverlayViewController.view]; | 31 addSubview:self.activityOverlayViewController.view]; |
| 43 [self.activityOverlayViewController | 32 [self.activityOverlayViewController |
| 44 didMoveToParentViewController:self.baseViewController]; | 33 didMoveToParentViewController:self.baseViewController]; |
| 45 AddSameConstraints(self.baseViewController.view, | 34 AddSameConstraints(self.baseViewController.view, |
| 46 self.activityOverlayViewController.view); | 35 self.activityOverlayViewController.view); |
| 47 } | 36 } |
| 48 | 37 |
| 49 - (void)stop { | 38 - (void)stop { |
| 50 if (!self.activityOverlayViewController) | 39 if (!self.activityOverlayViewController) |
| 51 return; | 40 return; |
| 52 [self.activityOverlayViewController willMoveToParentViewController:nil]; | 41 [self.activityOverlayViewController willMoveToParentViewController:nil]; |
| 53 [self.activityOverlayViewController.view removeFromSuperview]; | 42 [self.activityOverlayViewController.view removeFromSuperview]; |
| 54 [self.activityOverlayViewController removeFromParentViewController]; | 43 [self.activityOverlayViewController removeFromParentViewController]; |
| 55 self.activityOverlayViewController = nil; | 44 self.activityOverlayViewController = nil; |
| 56 } | 45 } |
| 57 | 46 |
| 58 @end | 47 @end |
| OLD | NEW |