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

Side by Side Diff: ios/showcase/payments/sc_payments_editor_coordinator.mm

Issue 2907103002: [Payment Request] Updates PaymentRequestEditViewController in showcase (Closed)
Patch Set: Addressed comments + fixed broken build Created 3 years, 6 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 unified diff | Download patch
« no previous file with comments | « ios/showcase/payments/BUILD.gn ('k') | ios/showcase/payments/sc_payments_editor_egtest.mm » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2017 The Chromium Authors. All rights reserved. 1 // Copyright 2017 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #import "ios/showcase/payments/sc_payments_editor_coordinator.h" 5 #import "ios/showcase/payments/sc_payments_editor_coordinator.h"
6 6
7 #import "base/mac/foundation_util.h" 7 #import "base/mac/foundation_util.h"
8 #include "base/strings/utf_string_conversions.h" 8 #include "base/strings/utf_string_conversions.h"
9 #import "ios/chrome/browser/ui/autofill/autofill_ui_type.h" 9 #import "ios/chrome/browser/ui/autofill/autofill_ui_type.h"
10 #import "ios/chrome/browser/ui/autofill/autofill_ui_type_util.h" 10 #import "ios/chrome/browser/ui/autofill/autofill_ui_type_util.h"
(...skipping 10 matching lines...) Expand all
21 21
22 @interface SCPaymentsEditorCoordinator ()< 22 @interface SCPaymentsEditorCoordinator ()<
23 PaymentRequestEditViewControllerDataSource, 23 PaymentRequestEditViewControllerDataSource,
24 PaymentRequestEditViewControllerValidator> 24 PaymentRequestEditViewControllerValidator>
25 25
26 @property(nonatomic, strong) 26 @property(nonatomic, strong)
27 PaymentRequestEditViewController* paymentRequestEditViewController; 27 PaymentRequestEditViewController* paymentRequestEditViewController;
28 28
29 @property(nonatomic, strong) ProtocolAlerter* alerter; 29 @property(nonatomic, strong) ProtocolAlerter* alerter;
30 30
31 @property(nonatomic, strong) EditorField* province;
32
31 @end 33 @end
32 34
33 @implementation SCPaymentsEditorCoordinator 35 @implementation SCPaymentsEditorCoordinator
34 36
35 @synthesize state = _state; 37 @synthesize state = _state;
36 @synthesize baseViewController = _baseViewController; 38 @synthesize baseViewController = _baseViewController;
37 @synthesize paymentRequestEditViewController = 39 @synthesize paymentRequestEditViewController =
38 _paymentRequestEditViewController; 40 _paymentRequestEditViewController;
39 @synthesize alerter = _alerter; 41 @synthesize alerter = _alerter;
42 @synthesize province = _province;
40 43
41 - (void)start { 44 - (void)start {
42 self.alerter = [[ProtocolAlerter alloc] initWithProtocols:@[ 45 self.alerter = [[ProtocolAlerter alloc] initWithProtocols:@[
43 @protocol(PaymentRequestEditViewControllerDelegate) 46 @protocol(PaymentRequestEditViewControllerDelegate)
44 ]]; 47 ]];
45 self.alerter.baseViewController = self.baseViewController; 48 self.alerter.baseViewController = self.baseViewController;
46 49
47 self.paymentRequestEditViewController = 50 self.paymentRequestEditViewController =
48 [[PaymentRequestEditViewController alloc] 51 [[PaymentRequestEditViewController alloc]
49 initWithStyle:CollectionViewControllerStyleAppBar]; 52 initWithStyle:CollectionViewControllerStyleAppBar];
50 [self.paymentRequestEditViewController setTitle:@"Add info"]; 53 [self.paymentRequestEditViewController setTitle:@"Add info"];
51 [self.paymentRequestEditViewController setEditorFields:[self editorFields]]; 54 [self.paymentRequestEditViewController setEditorFields:[self editorFields]];
52 [self.paymentRequestEditViewController setDataSource:self]; 55 [self.paymentRequestEditViewController setDataSource:self];
53 [self.paymentRequestEditViewController 56 [self.paymentRequestEditViewController
54 setDelegate:static_cast<id<PaymentRequestEditViewControllerDelegate>>( 57 setDelegate:static_cast<id<PaymentRequestEditViewControllerDelegate>>(
55 self.alerter)]; 58 self.alerter)];
56 [self.paymentRequestEditViewController setValidatorDelegate:self]; 59 [self.paymentRequestEditViewController setValidatorDelegate:self];
57 [self.paymentRequestEditViewController loadModel]; 60 [self.paymentRequestEditViewController loadModel];
61 // Set the options for the province field after the model is loaded.
62 NSArray<NSString*>* options = @[ @"Ontario", @"Quebec" ];
63 self.province.value = options[1];
64 self.province.enabled = YES;
65 [self.paymentRequestEditViewController setOptions:options
66 forEditorField:self.province];
58 [self.baseViewController 67 [self.baseViewController
59 pushViewController:self.paymentRequestEditViewController 68 pushViewController:self.paymentRequestEditViewController
60 animated:YES]; 69 animated:YES];
61 } 70 }
62 71
63 #pragma mark - Helper methods 72 #pragma mark - Helper methods
64 73
65 - (NSArray<EditorField*>*)editorFields { 74 - (NSArray<EditorField*>*)editorFields {
66 EditorField* name = 75 EditorField* name =
67 [[EditorField alloc] initWithAutofillUIType:AutofillUITypeProfileFullName 76 [[EditorField alloc] initWithAutofillUIType:AutofillUITypeProfileFullName
68 fieldType:EditorFieldTypeTextField 77 fieldType:EditorFieldTypeTextField
69 label:@"Name" 78 label:@"Name"
70 value:@"John Doe" 79 value:@"John Doe"
71 required:YES]; 80 required:YES];
72 EditorField* country = [[EditorField alloc] 81 EditorField* country = [[EditorField alloc]
73 initWithAutofillUIType:AutofillUITypeProfileHomeAddressCountry 82 initWithAutofillUIType:AutofillUITypeProfileHomeAddressCountry
74 fieldType:EditorFieldTypeSelector 83 fieldType:EditorFieldTypeSelector
75 label:@"Country" 84 label:@"Country"
76 value:@"CAN" 85 value:@"CAN"
77 required:YES]; 86 required:YES];
78 [country setDisplayValue:@"Canada"]; 87 [country setDisplayValue:@"Canada"];
88 self.province = [[EditorField alloc]
89 initWithAutofillUIType:AutofillUITypeProfileHomeAddressState
90 fieldType:EditorFieldTypeTextField
91 label:@"Province"
92 value:@"Loading..."
93 required:YES];
94 self.province.enabled = NO;
79 EditorField* address = [[EditorField alloc] 95 EditorField* address = [[EditorField alloc]
80 initWithAutofillUIType:AutofillUITypeProfileHomeAddressStreet 96 initWithAutofillUIType:AutofillUITypeProfileHomeAddressStreet
81 fieldType:EditorFieldTypeTextField 97 fieldType:EditorFieldTypeTextField
82 label:@"Address" 98 label:@"Address"
83 value:@"" 99 value:@""
84 required:YES]; 100 required:YES];
85 EditorField* postalCode = [[EditorField alloc] 101 EditorField* postalCode = [[EditorField alloc]
86 initWithAutofillUIType:AutofillUITypeProfileHomeAddressZip 102 initWithAutofillUIType:AutofillUITypeProfileHomeAddressZip
87 fieldType:EditorFieldTypeTextField 103 fieldType:EditorFieldTypeTextField
88 label:@"Postal Code" 104 label:@"Postal Code"
89 value:@"" 105 value:@""
90 required:NO]; 106 required:NO];
107 EditorField* save = [[EditorField alloc]
108 initWithAutofillUIType:AutofillUITypeCreditCardSaveToChrome
109 fieldType:EditorFieldTypeSwitch
110 label:@"Save"
111 value:@"YES"
112 required:NO];
91 113
92 return @[ name, country, address, postalCode ]; 114 return @[ name, country, self.province, address, postalCode, save ];
93 } 115 }
94 116
95 #pragma mark - PaymentRequestEditViewControllerDataSource 117 #pragma mark - PaymentRequestEditViewControllerDataSource
96 118
97 - (CollectionViewItem*)headerItem { 119 - (CollectionViewItem*)headerItem {
98 return nil; 120 return nil;
99 } 121 }
100 122
101 - (BOOL)shouldHideBackgroundForHeaderItem { 123 - (BOOL)shouldHideBackgroundForHeaderItem {
102 return NO; 124 return NO;
103 } 125 }
104 126
105 - (UIImage*)iconIdentifyingEditorField:(EditorField*)field { 127 - (UIImage*)iconIdentifyingEditorField:(EditorField*)field {
106 return nil; 128 return nil;
107 } 129 }
108 130
109 #pragma mark - PaymentRequestEditViewControllerValidator 131 #pragma mark - PaymentRequestEditViewControllerValidator
110 132
111 - (NSString*)paymentRequestEditViewController: 133 - (NSString*)paymentRequestEditViewController:
112 (PaymentRequestEditViewController*)controller 134 (PaymentRequestEditViewController*)controller
113 validateField:(EditorField*)field { 135 validateField:(EditorField*)field {
114 if (field.value.length) 136 return (!field.value.length && field.isRequired) ? @"Field is required" : nil;
115 return nil;
116 else if (field.isRequired)
117 return @"Field is required";
118 else
119 return nil;
120 } 137 }
121 138
122 @end 139 @end
OLDNEW
« no previous file with comments | « ios/showcase/payments/BUILD.gn ('k') | ios/showcase/payments/sc_payments_editor_egtest.mm » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698