Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(284)

Unified Diff: ios/showcase/payments/sc_payments_editor_coordinator.mm

Issue 2876603005: [Payment Request] Refactors the edit view controller (Closed)
Patch Set: Addressed comments Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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..8e636e5cb50374e06847425941bb95626e0d5109 100644
--- a/ios/showcase/payments/sc_payments_editor_coordinator.mm
+++ b/ios/showcase/payments/sc_payments_editor_coordinator.mm
@@ -13,49 +13,103 @@
#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:static_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
« no previous file with comments | « ios/chrome/browser/ui/payments/payment_request_editor_field.mm ('k') | ios/showcase/payments/sc_payments_editor_egtest.mm » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698