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

Side by Side Diff: chrome/browser/ui/autofill/autofill_dialog_common.cc

Issue 25620002: [rac] Use i18n address inputs with --enable-autofill-address-i18n flag (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Avoid initializer list Created 7 years, 2 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 | Annotate | Revision Log
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 #include "chrome/browser/ui/autofill/autofill_dialog_common.h" 5 #include "chrome/browser/ui/autofill/autofill_dialog_common.h"
6 6
7 #include "chrome/browser/ui/autofill/autofill_dialog_i18n_input.h"
7 #include "components/autofill/core/browser/autofill_field.h" 8 #include "components/autofill/core/browser/autofill_field.h"
8 #include "components/autofill/core/browser/autofill_type.h" 9 #include "components/autofill/core/browser/autofill_type.h"
9 #include "grit/chromium_strings.h" 10 #include "grit/chromium_strings.h"
10 #include "grit/component_strings.h" 11 #include "grit/component_strings.h"
11 #include "grit/generated_resources.h" 12 #include "grit/generated_resources.h"
12 #include "grit/theme_resources.h" 13 #include "grit/theme_resources.h"
13 #include "grit/webkit_resources.h" 14 #include "grit/webkit_resources.h"
14 15
15 namespace autofill { 16 namespace autofill {
16 namespace common { 17 namespace common {
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
65 DetailInputs* inputs) { 66 DetailInputs* inputs) {
66 for (size_t i = 0; i < template_size; ++i) { 67 for (size_t i = 0; i < template_size; ++i) {
67 const DetailInput* input = &input_template[i]; 68 const DetailInput* input = &input_template[i];
68 inputs->push_back(*input); 69 inputs->push_back(*input);
69 } 70 }
70 } 71 }
71 72
72 // Constructs |inputs| from template data for a given |dialog_section|. 73 // Constructs |inputs| from template data for a given |dialog_section|.
73 void BuildInputsForSection(DialogSection dialog_section, 74 void BuildInputsForSection(DialogSection dialog_section,
74 DetailInputs* inputs) { 75 DetailInputs* inputs) {
76 BuildInputsForSection(dialog_section, inputs, i18ninput::GuessCountry());
77 }
78
79 void BuildInputsForSection(DialogSection dialog_section,
80 DetailInputs* inputs,
81 const std::string& country_region) {
75 const DetailInput kCCInputs[] = { 82 const DetailInput kCCInputs[] = {
76 { 1, CREDIT_CARD_NUMBER, IDS_AUTOFILL_DIALOG_PLACEHOLDER_CARD_NUMBER }, 83 { 1, CREDIT_CARD_NUMBER, IDS_AUTOFILL_DIALOG_PLACEHOLDER_CARD_NUMBER },
77 { 2, CREDIT_CARD_EXP_MONTH, IDS_AUTOFILL_DIALOG_PLACEHOLDER_EXPIRY_MONTH }, 84 { 2, CREDIT_CARD_EXP_MONTH, IDS_AUTOFILL_DIALOG_PLACEHOLDER_EXPIRY_MONTH },
78 { 2, CREDIT_CARD_EXP_4_DIGIT_YEAR, 85 { 2, CREDIT_CARD_EXP_4_DIGIT_YEAR,
79 IDS_AUTOFILL_DIALOG_PLACEHOLDER_EXPIRY_YEAR }, 86 IDS_AUTOFILL_DIALOG_PLACEHOLDER_EXPIRY_YEAR },
80 { 2, CREDIT_CARD_VERIFICATION_CODE, IDS_AUTOFILL_DIALOG_PLACEHOLDER_CVC, 87 { 2, CREDIT_CARD_VERIFICATION_CODE, IDS_AUTOFILL_DIALOG_PLACEHOLDER_CVC,
81 1.5 }, 88 1.5 },
82 }; 89 };
83 90
91 const int kBillingInputsStartRow = 3;
84 const DetailInput kBillingInputs[] = { 92 const DetailInput kBillingInputs[] = {
85 { 3, NAME_BILLING_FULL, IDS_AUTOFILL_DIALOG_PLACEHOLDER_CARDHOLDER_NAME }, 93 { 3, NAME_BILLING_FULL, IDS_AUTOFILL_DIALOG_PLACEHOLDER_CARDHOLDER_NAME },
86 { 4, ADDRESS_BILLING_LINE1, 94 { 4, ADDRESS_BILLING_LINE1,
87 IDS_AUTOFILL_DIALOG_PLACEHOLDER_ADDRESS_LINE_1 }, 95 IDS_AUTOFILL_DIALOG_PLACEHOLDER_ADDRESS_LINE_1 },
88 { 5, ADDRESS_BILLING_LINE2, 96 { 5, ADDRESS_BILLING_LINE2,
89 IDS_AUTOFILL_DIALOG_PLACEHOLDER_ADDRESS_LINE_2 }, 97 IDS_AUTOFILL_DIALOG_PLACEHOLDER_ADDRESS_LINE_2 },
90 { 6, ADDRESS_BILLING_CITY, 98 { 6, ADDRESS_BILLING_CITY,
91 IDS_AUTOFILL_DIALOG_PLACEHOLDER_LOCALITY }, 99 IDS_AUTOFILL_DIALOG_PLACEHOLDER_LOCALITY },
92 // TODO(estade): state placeholder should depend on locale.
93 { 7, ADDRESS_BILLING_STATE, IDS_AUTOFILL_FIELD_LABEL_STATE }, 100 { 7, ADDRESS_BILLING_STATE, IDS_AUTOFILL_FIELD_LABEL_STATE },
94 { 7, ADDRESS_BILLING_ZIP, 101 { 7, ADDRESS_BILLING_ZIP,
95 IDS_AUTOFILL_DIALOG_PLACEHOLDER_POSTAL_CODE }, 102 IDS_AUTOFILL_DIALOG_PLACEHOLDER_POSTAL_CODE },
96 // We don't allow the user to change the country: http://crbug.com/247518 103 };
97 { -1, ADDRESS_BILLING_COUNTRY, 0 }, 104
98 { 9, PHONE_BILLING_WHOLE_NUMBER, 105 const DetailInput kBillingPhoneInputs[] = {
106 { 19, PHONE_BILLING_WHOLE_NUMBER,
99 IDS_AUTOFILL_DIALOG_PLACEHOLDER_PHONE_NUMBER }, 107 IDS_AUTOFILL_DIALOG_PLACEHOLDER_PHONE_NUMBER },
100 }; 108 };
101 109
102 const DetailInput kEmailInputs[] = { 110 const DetailInput kEmailInputs[] = {
103 { 10, EMAIL_ADDRESS, IDS_AUTOFILL_DIALOG_PLACEHOLDER_EMAIL }, 111 { 20, EMAIL_ADDRESS, IDS_AUTOFILL_DIALOG_PLACEHOLDER_EMAIL },
104 }; 112 };
105 113
114 const int kShippingInputsStartRow = 21;
106 const DetailInput kShippingInputs[] = { 115 const DetailInput kShippingInputs[] = {
107 { 11, NAME_FULL, IDS_AUTOFILL_DIALOG_PLACEHOLDER_ADDRESSEE_NAME }, 116 { 21, NAME_FULL, IDS_AUTOFILL_DIALOG_PLACEHOLDER_ADDRESSEE_NAME },
108 { 12, ADDRESS_HOME_LINE1, IDS_AUTOFILL_DIALOG_PLACEHOLDER_ADDRESS_LINE_1 }, 117 { 22, ADDRESS_HOME_LINE1, IDS_AUTOFILL_DIALOG_PLACEHOLDER_ADDRESS_LINE_1 },
109 { 13, ADDRESS_HOME_LINE2, IDS_AUTOFILL_DIALOG_PLACEHOLDER_ADDRESS_LINE_2 }, 118 { 23, ADDRESS_HOME_LINE2, IDS_AUTOFILL_DIALOG_PLACEHOLDER_ADDRESS_LINE_2 },
110 { 14, ADDRESS_HOME_CITY, IDS_AUTOFILL_DIALOG_PLACEHOLDER_LOCALITY }, 119 { 24, ADDRESS_HOME_CITY, IDS_AUTOFILL_DIALOG_PLACEHOLDER_LOCALITY },
111 { 15, ADDRESS_HOME_STATE, IDS_AUTOFILL_FIELD_LABEL_STATE }, 120 { 25, ADDRESS_HOME_STATE, IDS_AUTOFILL_FIELD_LABEL_STATE },
112 { 15, ADDRESS_HOME_ZIP, IDS_AUTOFILL_DIALOG_PLACEHOLDER_POSTAL_CODE }, 121 { 25, ADDRESS_HOME_ZIP, IDS_AUTOFILL_DIALOG_PLACEHOLDER_POSTAL_CODE },
113 { -1, ADDRESS_HOME_COUNTRY, 0 }, 122 };
114 { 17, PHONE_HOME_WHOLE_NUMBER, 123
124 const DetailInput kShippingPhoneInputs[] = {
125 { 37, PHONE_HOME_WHOLE_NUMBER,
115 IDS_AUTOFILL_DIALOG_PLACEHOLDER_PHONE_NUMBER }, 126 IDS_AUTOFILL_DIALOG_PLACEHOLDER_PHONE_NUMBER },
116 }; 127 };
117 128
118 switch (dialog_section) { 129 switch (dialog_section) {
119 case SECTION_CC: 130 case SECTION_CC:
120 BuildInputs(kCCInputs, arraysize(kCCInputs), inputs); 131 BuildInputs(kCCInputs, arraysize(kCCInputs), inputs);
121 break; 132 break;
122 133
123 case SECTION_BILLING: 134 case SECTION_BILLING:
124 BuildInputs(kBillingInputs, arraysize(kBillingInputs), inputs); 135 if (i18ninput::IsI18nAddressInputEnabled()) {
136 i18ninput::BuildI18nInputs(i18ninput::ADDRESS_TYPE_BILLING,
137 country_region,
138 kBillingInputsStartRow,
139 inputs);
140 } else {
141 BuildInputs(kBillingInputs, arraysize(kBillingInputs), inputs);
142 }
143 BuildInputs(kBillingPhoneInputs, arraysize(kBillingPhoneInputs), inputs);
125 BuildInputs(kEmailInputs, arraysize(kEmailInputs), inputs); 144 BuildInputs(kEmailInputs, arraysize(kEmailInputs), inputs);
126 break; 145 break;
127 146
128 case SECTION_CC_BILLING: 147 case SECTION_CC_BILLING:
129 BuildInputs(kCCInputs, arraysize(kCCInputs), inputs); 148 BuildInputs(kCCInputs, arraysize(kCCInputs), inputs);
130 BuildInputs(kBillingInputs, arraysize(kBillingInputs), inputs); 149 if (i18ninput::IsI18nAddressInputEnabled()) {
150 i18ninput::BuildI18nInputs(i18ninput::ADDRESS_TYPE_BILLING,
151 country_region,
152 kBillingInputsStartRow,
153 inputs);
154 } else {
155 BuildInputs(kBillingInputs, arraysize(kBillingInputs), inputs);
156 }
157 BuildInputs(kBillingPhoneInputs, arraysize(kBillingPhoneInputs), inputs);
131 break; 158 break;
132 159
133 case SECTION_SHIPPING: 160 case SECTION_SHIPPING:
134 BuildInputs(kShippingInputs, arraysize(kShippingInputs), inputs); 161 if (i18ninput::IsI18nAddressInputEnabled()) {
162 i18ninput::BuildI18nInputs(i18ninput::ADDRESS_TYPE_SHIPPING,
163 country_region,
164 kShippingInputsStartRow,
165 inputs);
166 } else {
167 BuildInputs(kShippingInputs, arraysize(kShippingInputs), inputs);
168 }
169 BuildInputs(
170 kShippingPhoneInputs, arraysize(kShippingPhoneInputs), inputs);
135 break; 171 break;
136 } 172 }
137 } 173 }
138 174
139 AutofillMetrics::DialogUiEvent DialogSectionToUiItemAddedEvent( 175 AutofillMetrics::DialogUiEvent DialogSectionToUiItemAddedEvent(
140 DialogSection section) { 176 DialogSection section) {
141 switch (section) { 177 switch (section) {
142 case SECTION_BILLING: 178 case SECTION_BILLING:
143 return AutofillMetrics::DIALOG_UI_BILLING_ITEM_ADDED; 179 return AutofillMetrics::DIALOG_UI_BILLING_ITEM_ADDED;
144 180
(...skipping 26 matching lines...) Expand all
171 case SECTION_CC: 207 case SECTION_CC:
172 return AutofillMetrics::DIALOG_UI_CC_SELECTED_SUGGESTION_CHANGED; 208 return AutofillMetrics::DIALOG_UI_CC_SELECTED_SUGGESTION_CHANGED;
173 } 209 }
174 210
175 NOTREACHED(); 211 NOTREACHED();
176 return AutofillMetrics::NUM_DIALOG_UI_EVENTS; 212 return AutofillMetrics::NUM_DIALOG_UI_EVENTS;
177 } 213 }
178 214
179 } // namespace common 215 } // namespace common
180 } // namespace autofill 216 } // namespace autofill
OLDNEW
« no previous file with comments | « chrome/browser/ui/autofill/autofill_dialog_common.h ('k') | chrome/browser/ui/autofill/autofill_dialog_i18n_input.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698