Index: ios/chrome/browser/ui/payments/contact_info_selection_coordinator.mm |
diff --git a/ios/chrome/browser/ui/payments/contact_info_selection_coordinator.mm b/ios/chrome/browser/ui/payments/contact_info_selection_coordinator.mm |
index 8a7c4007d719b698046b36293c1b34473052e3d0..0c07deb67773911eb49eeeb2e023eb145c12cb4e 100644 |
--- a/ios/chrome/browser/ui/payments/contact_info_selection_coordinator.mm |
+++ b/ios/chrome/browser/ui/payments/contact_info_selection_coordinator.mm |
@@ -28,6 +28,9 @@ const int64_t kDelegateNotificationDelayInNanoSeconds = 0.2 * NSEC_PER_SEC; |
@interface ContactInfoSelectionCoordinator () |
@property(nonatomic, strong) |
+ ContactInfoEditCoordinator* contactInfoEditCoordinator; |
+ |
+@property(nonatomic, strong) |
PaymentRequestSelectorViewController* viewController; |
@property(nonatomic, strong) ContactInfoSelectionMediator* mediator; |
@@ -44,6 +47,7 @@ const int64_t kDelegateNotificationDelayInNanoSeconds = 0.2 * NSEC_PER_SEC; |
@synthesize paymentRequest = _paymentRequest; |
@synthesize delegate = _delegate; |
+@synthesize contactInfoEditCoordinator = _contactInfoEditCoordinator; |
@synthesize viewController = _viewController; |
@synthesize mediator = _mediator; |
@@ -66,6 +70,8 @@ const int64_t kDelegateNotificationDelayInNanoSeconds = 0.2 * NSEC_PER_SEC; |
- (void)stop { |
[self.baseViewController.navigationController popViewControllerAnimated:YES]; |
+ [self.contactInfoEditCoordinator stop]; |
+ self.contactInfoEditCoordinator = nil; |
self.viewController = nil; |
self.mediator = nil; |
} |
@@ -90,7 +96,29 @@ const int64_t kDelegateNotificationDelayInNanoSeconds = 0.2 * NSEC_PER_SEC; |
- (void)paymentRequestSelectorViewControllerDidSelectAddItem: |
(PaymentRequestSelectorViewController*)controller { |
- // TODO(crbug.com/602666): Display contact info editor. |
+ self.contactInfoEditCoordinator = [[ContactInfoEditCoordinator alloc] |
+ initWithBaseViewController:self.viewController]; |
+ self.contactInfoEditCoordinator.paymentRequest = self.paymentRequest; |
+ self.contactInfoEditCoordinator.delegate = self; |
+ [self.contactInfoEditCoordinator start]; |
+} |
+ |
+#pragma mark - ContactInfoEditCoordinatorDelegate |
+ |
+- (void)contactInfoEditCoordinator:(ContactInfoEditCoordinator*)coordinator |
+ didFinishEditingProfile:(autofill::AutofillProfile*)profile { |
+ [self.contactInfoEditCoordinator stop]; |
+ self.contactInfoEditCoordinator = nil; |
+ |
+ // Inform |self.delegate| that |profile| has been selected. |
+ [self.delegate contactInfoSelectionCoordinator:self |
+ didSelectContactProfile:profile]; |
+} |
+ |
+- (void)contactInfoEditCoordinatorDidCancel: |
+ (ContactInfoEditCoordinator*)coordinator { |
+ [self.contactInfoEditCoordinator stop]; |
+ self.contactInfoEditCoordinator = nil; |
} |
#pragma mark - Helper methods |