| 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<
|
| + 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
|
|
|