Chromium Code Reviews| Index: ios/showcase/payments/sc_payments_editor_coordinator.mm |
| diff --git a/ios/showcase/payments/sc_payments_editor_coordinator.mm b/ios/showcase/payments/sc_payments_editor_coordinator.mm |
| index 519aed59ce40ba0bff4b3cf13aad4a3420d5b99f..bc6799e675de171ccb1d106637a0eabb0c40a1aa 100644 |
| --- a/ios/showcase/payments/sc_payments_editor_coordinator.mm |
| +++ b/ios/showcase/payments/sc_payments_editor_coordinator.mm |
| @@ -13,49 +13,104 @@ |
| #import "ios/chrome/browser/ui/payments/cells/payments_text_item.h" |
| #import "ios/chrome/browser/ui/payments/payment_request_edit_view_controller.h" |
| #import "ios/chrome/browser/ui/payments/payment_request_editor_field.h" |
| +#import "ios/showcase/common/protocol_alerter.h" |
| #if !defined(__has_feature) || !__has_feature(objc_arc) |
| #error "This file requires ARC support." |
| #endif |
| @interface SCPaymentsEditorCoordinator ()< |
| - PaymentRequestEditViewControllerDataSource> { |
| - PaymentRequestEditViewController* _paymentRequestEditViewController; |
| -} |
| + PaymentRequestEditViewControllerDataSource, |
| + PaymentRequestEditViewControllerValidator> |
| + |
| +@property(nonatomic, strong) |
| + PaymentRequestEditViewController* paymentRequestEditViewController; |
| + |
| +@property(nonatomic, strong) ProtocolAlerter* alerter; |
| + |
| @end |
| @implementation SCPaymentsEditorCoordinator |
| +@synthesize state = _state; |
| @synthesize baseViewController = _baseViewController; |
| +@synthesize paymentRequestEditViewController = |
| + _paymentRequestEditViewController; |
| +@synthesize alerter = _alerter; |
| - (void)start { |
| - _paymentRequestEditViewController = [[PaymentRequestEditViewController alloc] |
| - initWithStyle:CollectionViewControllerStyleAppBar]; |
| - [_paymentRequestEditViewController setTitle:@"Add info"]; |
| - [_paymentRequestEditViewController setDataSource:self]; |
| - [_paymentRequestEditViewController loadModel]; |
| - [self.baseViewController pushViewController:_paymentRequestEditViewController |
| - animated:YES]; |
| -} |
| + self.alerter = [[ProtocolAlerter alloc] initWithProtocols:@[ |
| + @protocol(PaymentRequestEditViewControllerDelegate) |
| + ]]; |
| + self.alerter.baseViewController = self.baseViewController; |
| + self.paymentRequestEditViewController = |
| + [[PaymentRequestEditViewController alloc] |
| + initWithStyle:CollectionViewControllerStyleAppBar]; |
| + [self.paymentRequestEditViewController setTitle:@"Add info"]; |
| + [self.paymentRequestEditViewController setDataSource:self]; |
| + [self.paymentRequestEditViewController |
| + setDelegate:reinterpret_cast< |
|
edchin
2017/05/15 17:38:17
I think this should be a static_cast.
Moe
2017/05/15 18:36:42
Done.
|
| + id<PaymentRequestEditViewControllerDelegate>>( |
| + self.alerter)]; |
| + [self.paymentRequestEditViewController setValidatorDelegate:self]; |
| + [self.paymentRequestEditViewController loadModel]; |
| + [self.baseViewController |
| + pushViewController:self.paymentRequestEditViewController |
| + animated:YES]; |
| +} |
| #pragma mark - PaymentRequestEditViewControllerDataSource |
| - (NSArray<EditorField*>*)editorFields { |
| - return @[ |
| - [[EditorField alloc] initWithAutofillUIType:AutofillUITypeUnknown |
| - label:@"Name" |
| - value:@"John Doe" |
| - required:YES], |
| - [[EditorField alloc] initWithAutofillUIType:AutofillUITypeUnknown |
| - label:@"Address" |
| - value:@"" |
| - required:YES], |
| - [[EditorField alloc] initWithAutofillUIType:AutofillUITypeUnknown |
| - label:@"Postal Code" |
| - value:@"" |
| - required:NO] |
| - ]; |
| + EditorField* name = |
| + [[EditorField alloc] initWithAutofillUIType:AutofillUITypeUnknown |
| + fieldType:EditorFieldTypeTextField |
| + label:@"Name" |
| + value:@"John Doe" |
| + required:YES]; |
| + EditorField* country = |
| + [[EditorField alloc] initWithAutofillUIType:AutofillUITypeUnknown |
| + fieldType:EditorFieldTypeSelector |
| + label:@"Country" |
| + value:@"CAN" |
| + required:YES]; |
| + [country setDisplayValue:@"Canada"]; |
| + EditorField* address = |
| + [[EditorField alloc] initWithAutofillUIType:AutofillUITypeUnknown |
| + fieldType:EditorFieldTypeTextField |
| + label:@"Address" |
| + value:@"" |
| + required:YES]; |
| + EditorField* postalCode = |
| + [[EditorField alloc] initWithAutofillUIType:AutofillUITypeUnknown |
| + fieldType:EditorFieldTypeTextField |
| + label:@"Postal Code" |
| + value:@"" |
| + required:NO]; |
| + |
| + return @[ name, country, address, postalCode ]; |
| +} |
| + |
| +- (CollectionViewItem*)headerItem { |
| + return nil; |
| +} |
| + |
| +- (BOOL)shouldHideBackgroundForHeaderItem { |
| + return NO; |
| +} |
| + |
| +#pragma mark - PaymentRequestEditViewControllerValidator |
| + |
| +- (NSString*)paymentRequestEditViewController: |
| + (PaymentRequestEditViewController*)controller |
| + validateField:(EditorField*)field { |
| + if (field.value.length) |
| + return nil; |
| + else if (field.isRequired) |
| + return @"Field is required"; |
| + else |
| + return nil; |
| } |
| @end |