| Index: ios/chrome/browser/ui/alert_coordinator/alert_coordinator.mm
|
| diff --git a/ios/chrome/browser/ui/alert_coordinator/alert_coordinator.mm b/ios/chrome/browser/ui/alert_coordinator/alert_coordinator.mm
|
| index 37307a6cde1786ca8f4627930cd07992d68949fa..7b47f1e3f1630a1cfe6ebd6db63eb4950983d451 100644
|
| --- a/ios/chrome/browser/ui/alert_coordinator/alert_coordinator.mm
|
| +++ b/ios/chrome/browser/ui/alert_coordinator/alert_coordinator.mm
|
| @@ -4,23 +4,19 @@
|
|
|
| #import "ios/chrome/browser/ui/alert_coordinator/alert_coordinator.h"
|
|
|
| -#import "base/ios/weak_nsobject.h"
|
| -#import "base/mac/scoped_block.h"
|
| -#import "base/mac/scoped_nsobject.h"
|
| +#include "base/logging.h"
|
| #include "ui/base/l10n/l10n_util.h"
|
| #include "ui/strings/grit/ui_strings.h"
|
|
|
| -@interface AlertCoordinator () {
|
| - // Variables backing properties of the same name.
|
| - base::scoped_nsobject<UIAlertController> _alertController;
|
| - base::scoped_nsobject<NSString> _message;
|
| - base::mac::ScopedBlock<ProceduralBlock> _cancelAction;
|
| - base::mac::ScopedBlock<ProceduralBlock> _startAction;
|
| - base::mac::ScopedBlock<ProceduralBlock> _noInteractionAction;
|
| - base::mac::ScopedBlock<ProceduralBlock> _rawCancelAction;
|
| +#if !defined(__has_feature) || !__has_feature(objc_arc)
|
| +#error "This file requires ARC support."
|
| +#endif
|
|
|
| +@interface AlertCoordinator () {
|
| + // Variable backing a property from Subclassing category.
|
| + UIAlertController* _alertController;
|
| // Title for the alert.
|
| - base::scoped_nsobject<NSString> _title;
|
| + NSString* _title;
|
| }
|
|
|
| // Redefined to readwrite.
|
| @@ -42,6 +38,11 @@
|
|
|
| @synthesize visible = _visible;
|
| @synthesize cancelButtonAdded = _cancelButtonAdded;
|
| +@synthesize cancelAction = _cancelAction;
|
| +@synthesize startAction = _startAction;
|
| +@synthesize noInteractionAction = _noInteractionAction;
|
| +@synthesize rawCancelAction = _rawCancelAction;
|
| +@synthesize message = _message;
|
|
|
| - (instancetype)initWithBaseViewController:(UIViewController*)viewController {
|
| NOTREACHED();
|
| @@ -53,8 +54,8 @@
|
| message:(NSString*)message {
|
| self = [super initWithBaseViewController:viewController];
|
| if (self) {
|
| - _title.reset([title copy]);
|
| - _message.reset([message copy]);
|
| + _title = [title copy];
|
| + _message = [message copy];
|
| }
|
| return self;
|
| }
|
| @@ -72,7 +73,7 @@
|
| if (style == UIAlertActionStyleCancel)
|
| _cancelButtonAdded = YES;
|
|
|
| - base::WeakNSObject<AlertCoordinator> weakSelf(self);
|
| + __weak AlertCoordinator* weakSelf = self;
|
|
|
| UIAlertAction* alertAction =
|
| [UIAlertAction actionWithTitle:title
|
| @@ -120,8 +121,8 @@
|
|
|
| - (void)stop {
|
| if (_noInteractionAction) {
|
| - _noInteractionAction.get()();
|
| - _noInteractionAction.reset();
|
| + _noInteractionAction();
|
| + _noInteractionAction = nil;
|
| }
|
| [[_alertController presentingViewController]
|
| dismissViewControllerAnimated:NO
|
| @@ -137,7 +138,7 @@
|
| [self alertControllerWithTitle:_title message:_message];
|
|
|
| if (alert)
|
| - _alertController.reset([alert retain]);
|
| + _alertController = alert;
|
| }
|
| return _alertController;
|
| }
|
| @@ -146,50 +147,18 @@
|
| return _message;
|
| }
|
|
|
| -- (void)setMessage:(NSString*)message {
|
| - _message.reset([message copy]);
|
| -}
|
| -
|
| -- (ProceduralBlock)cancelAction {
|
| - return _cancelAction;
|
| -}
|
| -
|
| - (void)setCancelAction:(ProceduralBlock)cancelAction {
|
| - base::WeakNSObject<AlertCoordinator> weakSelf(self);
|
| + __weak AlertCoordinator* weakSelf = self;
|
|
|
| self.rawCancelAction = cancelAction;
|
|
|
| - _cancelAction.reset([^{
|
| - base::scoped_nsobject<AlertCoordinator> strongSelf([weakSelf retain]);
|
| + _cancelAction = [^{
|
| + AlertCoordinator* strongSelf = weakSelf;
|
| [strongSelf setNoInteractionAction:nil];
|
| if ([strongSelf rawCancelAction]) {
|
| [strongSelf rawCancelAction]();
|
| }
|
| - } copy]);
|
| -}
|
| -
|
| -- (ProceduralBlock)startAction {
|
| - return _startAction;
|
| -}
|
| -
|
| -- (void)setStartAction:(ProceduralBlock)startAction {
|
| - _startAction.reset([startAction copy]);
|
| -}
|
| -
|
| -- (ProceduralBlock)noInteractionAction {
|
| - return _noInteractionAction;
|
| -}
|
| -
|
| -- (void)setNoInteractionAction:(ProceduralBlock)noInteractionAction {
|
| - _noInteractionAction.reset([noInteractionAction copy]);
|
| -}
|
| -
|
| -- (ProceduralBlock)rawCancelAction {
|
| - return _rawCancelAction;
|
| -}
|
| -
|
| -- (void)setRawCancelAction:(ProceduralBlock)rawCancelAction {
|
| - _rawCancelAction.reset([rawCancelAction copy]);
|
| + } copy];
|
| }
|
|
|
| #pragma mark - Private Methods.
|
| @@ -197,9 +166,9 @@
|
| - (void)alertDismissed {
|
| self.visible = NO;
|
| _cancelButtonAdded = NO;
|
| - _alertController.reset();
|
| - _cancelAction.reset();
|
| - _noInteractionAction.reset();
|
| + _alertController = nil;
|
| + _cancelAction = nil;
|
| + _noInteractionAction = nil;
|
| }
|
|
|
| - (UIAlertController*)alertControllerWithTitle:(NSString*)title
|
|
|