Index: third_party/libaddressinput/chromium/cpp/src/address_data.cc |
diff --git a/third_party/libaddressinput/chromium/cpp/src/address_data.cc b/third_party/libaddressinput/chromium/cpp/src/address_data.cc |
index 08da6ca153507e543ff5af83d100f3008bc052ee..bfd21e8ad6ab7f2a675c7def1aaf87fe00a6df5c 100644 |
--- a/third_party/libaddressinput/chromium/cpp/src/address_data.cc |
+++ b/third_party/libaddressinput/chromium/cpp/src/address_data.cc |
@@ -50,10 +50,12 @@ const std::string* GetMemberForField(const AddressData& address, |
return &address.organization; |
case RECIPIENT: |
return &address.recipient; |
- default: |
- assert(false); |
- return NULL; |
+ case STREET_ADDRESS: |
+ break; |
} |
+ |
+ assert(false); |
+ return NULL; |
} |
} // namespace |
@@ -117,5 +119,26 @@ void AddressData::SetFieldValue(AddressField field, const std::string& value) { |
} |
} |
+bool AddressData::HasAllRequiredFields() const { |
+ if (country_code.empty()) |
+ return false; |
+ |
+ Rule rule; |
+ rule.CopyFrom(Rule::GetDefault()); |
+ if (!rule.ParseSerializedRule( |
+ RegionDataConstants::GetRegionData(country_code))) { |
+ return false; |
+ } |
+ |
+ std::vector<::i18n::addressinput::AddressField> required_fields = |
please use gerrit instead
2014/05/09 22:26:50
Place add a space between < and ::.
Evan Stade
2014/05/09 22:49:08
Done.
|
+ rule.GetRequired(); |
+ for (size_t i = 0; i < required_fields.size(); ++i) { |
+ if (GetFieldValue(required_fields[i]).empty()) |
please use gerrit instead
2014/05/09 22:26:50
Please check for STREET_ADDRESS here to avoid the
Evan Stade
2014/05/09 22:49:08
Done.
|
+ return false; |
+ } |
+ |
+ return true; |
+} |
+ |
} // namespace addressinput |
} // namespace i18n |