| Index: ios/chrome/browser/payments/shipping_address_selection_coordinator.mm
|
| diff --git a/ios/chrome/browser/payments/shipping_address_selection_coordinator.mm b/ios/chrome/browser/payments/shipping_address_selection_coordinator.mm
|
| index b7f2cf5738111ab2771817c19aa443224f2fc718..f47c2b422d412469b5b6b94853878d6cba93f909 100644
|
| --- a/ios/chrome/browser/payments/shipping_address_selection_coordinator.mm
|
| +++ b/ios/chrome/browser/payments/shipping_address_selection_coordinator.mm
|
| @@ -4,17 +4,18 @@
|
|
|
| #import "ios/chrome/browser/payments/shipping_address_selection_coordinator.h"
|
|
|
| -#import "base/ios/weak_nsobject.h"
|
| -#include "base/mac/scoped_nsobject.h"
|
| #include "base/strings/sys_string_conversions.h"
|
| #include "components/autofill/core/browser/autofill_profile.h"
|
| #include "ios/chrome/browser/payments/payment_request.h"
|
|
|
| -@interface ShippingAddressSelectionCoordinator () {
|
| - base::WeakNSProtocol<id<ShippingAddressSelectionCoordinatorDelegate>>
|
| - _delegate;
|
| - base::scoped_nsobject<ShippingAddressSelectionViewController> _viewController;
|
| -}
|
| +#if !defined(__has_feature) || !__has_feature(objc_arc)
|
| +#error "This file requires ARC support."
|
| +#endif
|
| +
|
| +@interface ShippingAddressSelectionCoordinator ()
|
| +
|
| +@property(nonatomic, strong)
|
| + ShippingAddressSelectionViewController* viewController;
|
|
|
| // Called when the user selects a shipping address. The cell is checked, the
|
| // UI is locked so that the user can't interact with it, then the delegate is
|
| @@ -28,18 +29,12 @@
|
| @implementation ShippingAddressSelectionCoordinator
|
|
|
| @synthesize paymentRequest = _paymentRequest;
|
| -
|
| -- (id<ShippingAddressSelectionCoordinatorDelegate>)delegate {
|
| - return _delegate.get();
|
| -}
|
| -
|
| -- (void)setDelegate:(id<ShippingAddressSelectionCoordinatorDelegate>)delegate {
|
| - _delegate.reset(delegate);
|
| -}
|
| +@synthesize delegate = _delegate;
|
| +@synthesize viewController = _viewController;
|
|
|
| - (void)start {
|
| - _viewController.reset([[ShippingAddressSelectionViewController alloc]
|
| - initWithPaymentRequest:_paymentRequest]);
|
| + _viewController = [[ShippingAddressSelectionViewController alloc]
|
| + initWithPaymentRequest:_paymentRequest];
|
| [_viewController setDelegate:self];
|
| [_viewController loadModel];
|
|
|
| @@ -51,13 +46,13 @@
|
|
|
| - (void)stop {
|
| [self.baseViewController.navigationController popViewControllerAnimated:YES];
|
| - _viewController.reset();
|
| + _viewController = nil;
|
| }
|
|
|
| - (void)stopSpinnerAndDisplayError {
|
| // Re-enable user interactions that were disabled earlier in
|
| // delayedNotifyDelegateOfSelection.
|
| - _viewController.get().view.userInteractionEnabled = YES;
|
| + _viewController.view.userInteractionEnabled = YES;
|
|
|
| [_viewController setIsLoading:NO];
|
| [_viewController
|
| @@ -83,25 +78,20 @@
|
|
|
| - (void)delayedNotifyDelegateOfSelection:
|
| (autofill::AutofillProfile*)shippingAddress {
|
| - _viewController.get().view.userInteractionEnabled = NO;
|
| - base::WeakNSObject<ShippingAddressSelectionCoordinator> weakSelf(self);
|
| - dispatch_after(
|
| - dispatch_time(DISPATCH_TIME_NOW,
|
| - static_cast<int64_t>(0.2 * NSEC_PER_SEC)),
|
| - dispatch_get_main_queue(), ^{
|
| - base::scoped_nsobject<ShippingAddressSelectionCoordinator> strongSelf(
|
| - [weakSelf retain]);
|
| - // Early return if the coordinator has been deallocated.
|
| - if (!strongSelf)
|
| - return;
|
| -
|
| - [_viewController setIsLoading:YES];
|
| - [_viewController loadModel];
|
| - [[_viewController collectionView] reloadData];
|
| -
|
| - [_delegate shippingAddressSelectionCoordinator:self
|
| - didSelectShippingAddress:shippingAddress];
|
| - });
|
| + _viewController.view.userInteractionEnabled = NO;
|
| + __weak ShippingAddressSelectionCoordinator* weakSelf = self;
|
| + dispatch_after(dispatch_time(DISPATCH_TIME_NOW,
|
| + static_cast<int64_t>(0.2 * NSEC_PER_SEC)),
|
| + dispatch_get_main_queue(), ^{
|
| + ShippingAddressSelectionCoordinator* strongSelf = weakSelf;
|
| + [strongSelf.viewController setIsLoading:YES];
|
| + [strongSelf.viewController loadModel];
|
| + [[strongSelf.viewController collectionView] reloadData];
|
| +
|
| + [strongSelf.delegate
|
| + shippingAddressSelectionCoordinator:strongSelf
|
| + didSelectShippingAddress:shippingAddress];
|
| + });
|
| }
|
|
|
| @end
|
|
|