Index: chrome/browser/ui/autofill/autofill_dialog_i18n_input.cc |
diff --git a/chrome/browser/ui/autofill/autofill_dialog_i18n_input.cc b/chrome/browser/ui/autofill/autofill_dialog_i18n_input.cc |
index 5dc33e3ca7fcaa7ac0e893d1fb92cb964ab64a4e..be42221c8d3e6501e0d971a9c341f9a3c8ae76a6 100644 |
--- a/chrome/browser/ui/autofill/autofill_dialog_i18n_input.cc |
+++ b/chrome/browser/ui/autofill/autofill_dialog_i18n_input.cc |
@@ -7,6 +7,7 @@ |
#include "base/strings/string_split.h" |
#include "base/strings/utf_string_conversions.h" |
#include "chrome/browser/browser_process.h" |
+#include "components/autofill/core/browser/address_i18n.h" |
#include "components/autofill/core/browser/autofill_profile.h" |
#include "components/autofill/core/browser/credit_card.h" |
#include "components/autofill/core/browser/field_types.h" |
@@ -87,22 +88,14 @@ bool CardHasCompleteAndVerifiedData(const CreditCard& card) { |
return true; |
} |
-bool AddressHasCompleteAndVerifiedData(const AutofillProfile& profile) { |
+bool AddressHasCompleteAndVerifiedData(const AutofillProfile& profile, |
+ const std::string& app_locale) { |
if (!profile.IsVerified()) |
return false; |
- base::string16 country_code = profile.GetRawInfo(ADDRESS_HOME_COUNTRY); |
- if (country_code.empty()) |
+ if (!i18n::CreateAddressDataFromAutofillProfile(profile, app_locale)-> |
+ HasAllRequiredFields()) { |
return false; |
- |
- std::vector<AddressField> required_fields = |
- ::i18n::addressinput::GetRequiredFields(base::UTF16ToUTF8(country_code)); |
- |
- for (size_t i = 0; i < required_fields.size(); ++i) { |
- ServerFieldType type = |
- TypeForField(required_fields[i], common::ADDRESS_TYPE_SHIPPING); |
- if (profile.GetRawInfo(type).empty()) |
- return false; |
} |
const ServerFieldType more_required_fields[] = { |
@@ -203,29 +196,6 @@ bool FieldForType(ServerFieldType server_type, |
} |
} |
-void CreateAddressData( |
- const base::Callback<base::string16(const AutofillType&)>& get_info, |
- AddressData* address_data) { |
- address_data->recipient = UTF16ToUTF8(get_info.Run(AutofillType(NAME_FULL))); |
- address_data->country_code = UTF16ToUTF8( |
- get_info.Run(AutofillType(HTML_TYPE_COUNTRY_CODE, HTML_MODE_SHIPPING))); |
- DCHECK_EQ(2U, address_data->country_code.size()); |
- address_data->administrative_area = UTF16ToUTF8( |
- get_info.Run(AutofillType(ADDRESS_HOME_STATE))); |
- address_data->locality = UTF16ToUTF8( |
- get_info.Run(AutofillType(ADDRESS_HOME_CITY))); |
- address_data->dependent_locality = UTF16ToUTF8( |
- get_info.Run(AutofillType(ADDRESS_HOME_DEPENDENT_LOCALITY))); |
- address_data->sorting_code = UTF16ToUTF8( |
- get_info.Run(AutofillType(ADDRESS_HOME_SORTING_CODE))); |
- address_data->postal_code = UTF16ToUTF8( |
- get_info.Run(AutofillType(ADDRESS_HOME_ZIP))); |
- base::SplitString( |
- UTF16ToUTF8(get_info.Run(AutofillType(ADDRESS_HOME_STREET_ADDRESS))), |
- '\n', |
- &address_data->address_lines); |
-} |
- |
bool CountryIsFullySupported(const std::string& country_code) { |
DCHECK_EQ(2U, country_code.size()); |
std::vector< ::i18n::addressinput::AddressUiComponent> components = |