OLD | NEW |
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 #include "chrome/browser/ui/views/payments/shipping_address_editor_view_controll
er.h" | 5 #include "chrome/browser/ui/views/payments/shipping_address_editor_view_controll
er.h" |
6 | 6 |
7 #include "base/bind.h" | 7 #include "base/bind.h" |
8 #include "base/bind_helpers.h" | 8 #include "base/bind_helpers.h" |
9 #include "base/callback.h" | 9 #include "base/callback.h" |
10 #include "base/memory/ptr_util.h" | 10 #include "base/memory/ptr_util.h" |
(...skipping 189 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
200 // the action. | 200 // the action. |
201 OnDataChanged(/*synchronous=*/false); | 201 OnDataChanged(/*synchronous=*/false); |
202 } | 202 } |
203 } | 203 } |
204 | 204 |
205 void ShippingAddressEditorViewController::UpdateEditorView() { | 205 void ShippingAddressEditorViewController::UpdateEditorView() { |
206 EditorViewController::UpdateEditorView(); | 206 EditorViewController::UpdateEditorView(); |
207 if (chosen_country_index_ > 0UL && | 207 if (chosen_country_index_ > 0UL && |
208 chosen_country_index_ < countries_.size()) { | 208 chosen_country_index_ < countries_.size()) { |
209 views::Combobox* country_combo_box = static_cast<views::Combobox*>( | 209 views::Combobox* country_combo_box = static_cast<views::Combobox*>( |
210 dialog()->GetViewByID(autofill::ADDRESS_HOME_COUNTRY)); | 210 dialog()->GetViewByID(EditorViewController::GetInputFieldViewId( |
| 211 autofill::ADDRESS_HOME_COUNTRY))); |
211 DCHECK(country_combo_box); | 212 DCHECK(country_combo_box); |
212 DCHECK_EQ(countries_.size(), | 213 DCHECK_EQ(countries_.size(), |
213 static_cast<size_t>(country_combo_box->GetRowCount())); | 214 static_cast<size_t>(country_combo_box->GetRowCount())); |
214 country_combo_box->SetSelectedIndex(chosen_country_index_); | 215 country_combo_box->SetSelectedIndex(chosen_country_index_); |
215 } else if (countries_.size() > 0UL) { | 216 } else if (countries_.size() > 0UL) { |
216 chosen_country_index_ = 0UL; | 217 chosen_country_index_ = 0UL; |
217 } else { | 218 } else { |
218 chosen_country_index_ = kInvalidCountryIndex; | 219 chosen_country_index_ = kInvalidCountryIndex; |
219 } | 220 } |
220 // Ignore temporary profile once the editor view has been updated. | 221 // Ignore temporary profile once the editor view has been updated. |
(...skipping 159 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
380 } | 381 } |
381 } | 382 } |
382 | 383 |
383 bool ShippingAddressEditorViewController::SaveFieldsToProfile( | 384 bool ShippingAddressEditorViewController::SaveFieldsToProfile( |
384 autofill::AutofillProfile* profile, | 385 autofill::AutofillProfile* profile, |
385 bool ignore_errors) { | 386 bool ignore_errors) { |
386 const std::string& locale = state()->GetApplicationLocale(); | 387 const std::string& locale = state()->GetApplicationLocale(); |
387 // The country must be set first, because the profile uses the country to | 388 // The country must be set first, because the profile uses the country to |
388 // interpret some of the data (e.g., phone numbers) passed to SetInfo. | 389 // interpret some of the data (e.g., phone numbers) passed to SetInfo. |
389 views::Combobox* combobox = static_cast<views::Combobox*>( | 390 views::Combobox* combobox = static_cast<views::Combobox*>( |
390 dialog()->GetViewByID(autofill::ADDRESS_HOME_COUNTRY)); | 391 dialog()->GetViewByID(EditorViewController::GetInputFieldViewId( |
| 392 autofill::ADDRESS_HOME_COUNTRY))); |
391 // The combobox can be null when saving to temporary profile while updating | 393 // The combobox can be null when saving to temporary profile while updating |
392 // the view. | 394 // the view. |
393 if (combobox) { | 395 if (combobox) { |
394 base::string16 country(combobox->GetTextForRow(combobox->selected_index())); | 396 base::string16 country(combobox->GetTextForRow(combobox->selected_index())); |
395 bool success = | 397 bool success = |
396 profile->SetInfo(autofill::AutofillType(autofill::ADDRESS_HOME_COUNTRY), | 398 profile->SetInfo(autofill::AutofillType(autofill::ADDRESS_HOME_COUNTRY), |
397 country, locale); | 399 country, locale); |
398 LOG_IF(ERROR, !success && !ignore_errors) | 400 LOG_IF(ERROR, !success && !ignore_errors) |
399 << "Can't set profile country to: " << country; | 401 << "Can't set profile country to: " << country; |
400 if (!success && !ignore_errors) | 402 if (!success && !ignore_errors) |
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
488 | 490 |
489 bool ShippingAddressEditorViewController::ShippingAddressValidationDelegate:: | 491 bool ShippingAddressEditorViewController::ShippingAddressValidationDelegate:: |
490 ValidateValue(const base::string16& value) { | 492 ValidateValue(const base::string16& value) { |
491 if (!value.empty()) { | 493 if (!value.empty()) { |
492 if (field_.type == autofill::PHONE_HOME_WHOLE_NUMBER && | 494 if (field_.type == autofill::PHONE_HOME_WHOLE_NUMBER && |
493 controller_->chosen_country_index_ < controller_->countries_.size() && | 495 controller_->chosen_country_index_ < controller_->countries_.size() && |
494 !autofill::IsValidPhoneNumber( | 496 !autofill::IsValidPhoneNumber( |
495 value, controller_->countries_[controller_->chosen_country_index_] | 497 value, controller_->countries_[controller_->chosen_country_index_] |
496 .first)) { | 498 .first)) { |
497 controller_->DisplayErrorMessageForField( | 499 controller_->DisplayErrorMessageForField( |
498 field_, l10n_util::GetStringUTF16( | 500 field_.type, l10n_util::GetStringUTF16( |
499 IDS_PAYMENTS_PHONE_INVALID_VALIDATION_MESSAGE)); | 501 IDS_PAYMENTS_PHONE_INVALID_VALIDATION_MESSAGE)); |
500 return false; | 502 return false; |
501 } | 503 } |
502 // As long as other field types are non-empty, they are valid. | 504 // As long as other field types are non-empty, they are valid. |
503 controller_->DisplayErrorMessageForField(field_, base::ASCIIToUTF16("")); | 505 controller_->DisplayErrorMessageForField(field_.type, |
| 506 base::ASCIIToUTF16("")); |
504 return true; | 507 return true; |
505 } | 508 } |
506 bool is_required_valid = !field_.required; | 509 bool is_required_valid = !field_.required; |
507 const base::string16 displayed_message = | 510 const base::string16 displayed_message = |
508 is_required_valid ? base::ASCIIToUTF16("") | 511 is_required_valid ? base::ASCIIToUTF16("") |
509 : l10n_util::GetStringUTF16( | 512 : l10n_util::GetStringUTF16( |
510 IDS_PAYMENTS_FIELD_REQUIRED_VALIDATION_MESSAGE); | 513 IDS_PAYMENTS_FIELD_REQUIRED_VALIDATION_MESSAGE); |
511 controller_->DisplayErrorMessageForField(field_, displayed_message); | 514 controller_->DisplayErrorMessageForField(field_.type, displayed_message); |
512 return is_required_valid; | 515 return is_required_valid; |
513 } | 516 } |
514 | 517 |
515 } // namespace payments | 518 } // namespace payments |
OLD | NEW |