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

Side by Side Diff: third_party/libaddressinput/chromium/cpp/src/address_ui.cc

Issue 261013010: autocomplete: add ability to get full address (hidden behind a flag). (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: self review Created 6 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (C) 2013 Google Inc. 1 // Copyright (C) 2013 Google Inc.
2 // 2 //
3 // Licensed under the Apache License, Version 2.0 (the "License"); 3 // Licensed under the Apache License, Version 2.0 (the "License");
4 // you may not use this file except in compliance with the License. 4 // you may not use this file except in compliance with the License.
5 // You may obtain a copy of the License at 5 // You may obtain a copy of the License at
6 // 6 //
7 // http://www.apache.org/licenses/LICENSE-2.0 7 // http://www.apache.org/licenses/LICENSE-2.0
8 // 8 //
9 // Unless required by applicable law or agreed to in writing, software 9 // Unless required by applicable law or agreed to in writing, software
10 // distributed under the License is distributed on an "AS IS" BASIS, 10 // distributed under the License is distributed on an "AS IS" BASIS,
(...skipping 18 matching lines...) Expand all
29 #include "region_data_constants.h" 29 #include "region_data_constants.h"
30 #include "rule.h" 30 #include "rule.h"
31 #include "util/string_util.h" 31 #include "util/string_util.h"
32 32
33 namespace i18n { 33 namespace i18n {
34 namespace addressinput { 34 namespace addressinput {
35 35
36 namespace { 36 namespace {
37 37
38 int GetMessageIdForField(AddressField field, 38 int GetMessageIdForField(AddressField field,
39 int admin_area_name_message_id, 39 const std::string& admin_area_name_type,
40 int postal_code_name_message_id) { 40 const std::string& postal_code_name_type) {
41 switch (field) { 41 switch (field) {
42 case COUNTRY: 42 case COUNTRY:
43 return IDS_LIBADDRESSINPUT_I18N_COUNTRY_LABEL; 43 return IDS_LIBADDRESSINPUT_I18N_COUNTRY_LABEL;
44 case ADMIN_AREA:
45 return admin_area_name_message_id;
46 case LOCALITY: 44 case LOCALITY:
47 return IDS_LIBADDRESSINPUT_I18N_LOCALITY_LABEL; 45 return IDS_LIBADDRESSINPUT_I18N_LOCALITY_LABEL;
48 case DEPENDENT_LOCALITY: 46 case DEPENDENT_LOCALITY:
49 return IDS_LIBADDRESSINPUT_I18N_DEPENDENT_LOCALITY_LABEL; 47 return IDS_LIBADDRESSINPUT_I18N_DEPENDENT_LOCALITY_LABEL;
50 case SORTING_CODE: 48 case SORTING_CODE:
51 return IDS_LIBADDRESSINPUT_I18N_CEDEX_LABEL; 49 return IDS_LIBADDRESSINPUT_I18N_CEDEX_LABEL;
52 case POSTAL_CODE:
53 return postal_code_name_message_id;
54 case STREET_ADDRESS: 50 case STREET_ADDRESS:
55 return IDS_LIBADDRESSINPUT_I18N_ADDRESS_LINE1_LABEL; 51 return IDS_LIBADDRESSINPUT_I18N_ADDRESS_LINE1_LABEL;
56 case ORGANIZATION: 52 case ORGANIZATION:
57 return IDS_LIBADDRESSINPUT_I18N_ORGANIZATION_LABEL; 53 return IDS_LIBADDRESSINPUT_I18N_ORGANIZATION_LABEL;
58 case RECIPIENT: 54 case RECIPIENT:
59 return IDS_LIBADDRESSINPUT_I18N_RECIPIENT_LABEL; 55 return IDS_LIBADDRESSINPUT_I18N_RECIPIENT_LABEL;
60 default: 56
61 return INVALID_MESSAGE_ID; 57 case ADMIN_AREA:
58 if (admin_area_name_type == "area") {
59 return IDS_LIBADDRESSINPUT_I18N_AREA;
60 }
61 if (admin_area_name_type == "county") {
62 return IDS_LIBADDRESSINPUT_I18N_COUNTY_LABEL;
63 }
64 if (admin_area_name_type == "department") {
65 return IDS_LIBADDRESSINPUT_I18N_DEPARTMENT;
66 }
67 if (admin_area_name_type == "district") {
68 return IDS_LIBADDRESSINPUT_I18N_DEPENDENT_LOCALITY_LABEL;
69 }
70 if (admin_area_name_type == "do_si") {
71 return IDS_LIBADDRESSINPUT_I18N_DO_SI;
72 }
73 if (admin_area_name_type == "emirate") {
74 return IDS_LIBADDRESSINPUT_I18N_EMIRATE;
75 }
76 if (admin_area_name_type == "island") {
77 return IDS_LIBADDRESSINPUT_I18N_ISLAND;
78 }
79 if (admin_area_name_type == "parish") {
80 return IDS_LIBADDRESSINPUT_I18N_PARISH;
81 }
82 if (admin_area_name_type == "prefecture") {
83 return IDS_LIBADDRESSINPUT_I18N_PREFECTURE;
84 }
85 if (admin_area_name_type == "province") {
86 return IDS_LIBADDRESSINPUT_I18N_PROVINCE;
87 }
88 if (admin_area_name_type == "state") {
89 return IDS_LIBADDRESSINPUT_I18N_STATE_LABEL;
90 }
91 break;
92
93 case POSTAL_CODE:
94 if (postal_code_name_type == "postal") {
95 return IDS_LIBADDRESSINPUT_I18N_POSTAL_CODE_LABEL;
96 }
97 if (postal_code_name_type == "zip") {
98 return IDS_LIBADDRESSINPUT_I18N_ZIP_CODE_LABEL;
99 }
100 break;
62 } 101 }
102
103 return INVALID_MESSAGE_ID;
63 } 104 }
64 105
65 // Returns the BCP 47 language code that should be used to format the address 106 // Returns the BCP 47 language code that should be used to format the address
66 // that the user entered. 107 // that the user entered.
67 // 108 //
68 // If the rule does not contain information about languages, then returns the 109 // If the rule does not contain information about languages, then returns the
69 // UI language. 110 // UI language.
70 // 111 //
71 // If the UI language is either the default language for the country, one of the 112 // If the UI language is either the default language for the country, one of the
72 // languages for rules, or one of the languages for address input, then returns 113 // languages for rules, or one of the languages for address input, then returns
(...skipping 119 matching lines...) Expand 10 before | Expand all | Expand 10 after
192 } 233 }
193 fields.insert(field); 234 fields.insert(field);
194 235
195 AddressUiComponent component; 236 AddressUiComponent component;
196 component.length_hint = 237 component.length_hint =
197 num_fields_this_row == 1 ? AddressUiComponent::HINT_LONG 238 num_fields_this_row == 1 ? AddressUiComponent::HINT_LONG
198 : AddressUiComponent::HINT_SHORT; 239 : AddressUiComponent::HINT_SHORT;
199 component.field = field; 240 component.field = field;
200 component.name_id = 241 component.name_id =
201 GetMessageIdForField(field, 242 GetMessageIdForField(field,
202 rule.GetAdminAreaNameMessageId(), 243 rule.GetAdminAreaNameType(),
203 rule.GetPostalCodeNameMessageId()); 244 rule.GetPostalCodeNameType());
204 result.push_back(component); 245 result.push_back(component);
205 } 246 }
206 } 247 }
207 248
208 return result; 249 return result;
209 } 250 }
210 251
211 std::vector<AddressField> GetRequiredFields(const std::string& region_code) {
212 Rule rule;
213 rule.CopyFrom(Rule::GetDefault());
214 if (!rule.ParseSerializedRule(
215 RegionDataConstants::GetRegionData(region_code))) {
216 return std::vector<AddressField>();
217 }
218
219 return rule.GetRequired();
220 }
221
222 const std::string& GetCompactAddressLinesSeparator( 252 const std::string& GetCompactAddressLinesSeparator(
223 const std::string& language_code) { 253 const std::string& language_code) {
224 return RegionDataConstants::GetLanguageCompactLineSeparator(language_code); 254 return RegionDataConstants::GetLanguageCompactLineSeparator(language_code);
225 } 255 }
226 256
227 } // namespace addressinput 257 } // namespace addressinput
228 } // namespace i18n 258 } // namespace i18n
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698