Chromium Code Reviews| 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/credit_card_editor_view_controller.h" | 5 #include "chrome/browser/ui/views/payments/credit_card_editor_view_controller.h" |
| 6 | 6 |
| 7 #include <memory> | 7 #include <memory> |
| 8 #include <string> | 8 #include <string> |
| 9 #include <utility> | 9 #include <utility> |
| 10 #include <vector> | 10 #include <vector> |
| (...skipping 150 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 161 } | 161 } |
| 162 view->AddChildView(icons_row.release()); | 162 view->AddChildView(icons_row.release()); |
| 163 | 163 |
| 164 return view; | 164 return view; |
| 165 } | 165 } |
| 166 | 166 |
| 167 std::unique_ptr<views::View> | 167 std::unique_ptr<views::View> |
| 168 CreditCardEditorViewController::CreateExtraViewForField( | 168 CreditCardEditorViewController::CreateExtraViewForField( |
| 169 autofill::ServerFieldType type) { | 169 autofill::ServerFieldType type) { |
| 170 if (type != kBillingAddressType) | 170 if (type != kBillingAddressType) |
| 171 return nullptr; | 171 return std::unique_ptr<views::View>(); |
|
anthonyvd
2017/05/12 14:19:44
nit: just nullptr was fine and it's what we use el
MAD
2017/05/18 16:01:44
Done.
| |
| 172 | 172 |
| 173 std::unique_ptr<views::View> button_view = base::MakeUnique<views::View>(); | 173 std::unique_ptr<views::View> button_view = base::MakeUnique<views::View>(); |
| 174 button_view->SetLayoutManager(new views::FillLayout); | 174 button_view->SetLayoutManager(new views::FillLayout); |
| 175 | 175 |
| 176 // The button to add new billing addresses. | 176 // The button to add new billing addresses. |
| 177 std::unique_ptr<views::Button> add_button( | 177 std::unique_ptr<views::Button> add_button( |
| 178 views::MdTextButton::Create(this, l10n_util::GetStringUTF16(IDS_ADD))); | 178 views::MdTextButton::Create(this, l10n_util::GetStringUTF16(IDS_ADD))); |
| 179 add_button->set_id( | 179 add_button->set_id( |
| 180 static_cast<int>(DialogViewID::ADD_BILLING_ADDRESS_BUTTON)); | 180 static_cast<int>(DialogViewID::ADD_BILLING_ADDRESS_BUTTON)); |
| 181 add_button->set_tag(add_billing_address_button_tag_); | 181 add_button->set_tag(add_billing_address_button_tag_); |
| (...skipping 201 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 383 EditorViewController* controller, | 383 EditorViewController* controller, |
| 384 const std::vector<std::string>& supported_card_networks) | 384 const std::vector<std::string>& supported_card_networks) |
| 385 : field_(field), | 385 : field_(field), |
| 386 controller_(controller), | 386 controller_(controller), |
| 387 supported_card_networks_(supported_card_networks.begin(), | 387 supported_card_networks_(supported_card_networks.begin(), |
| 388 supported_card_networks.end()) {} | 388 supported_card_networks.end()) {} |
| 389 CreditCardEditorViewController::CreditCardValidationDelegate:: | 389 CreditCardEditorViewController::CreditCardValidationDelegate:: |
| 390 ~CreditCardValidationDelegate() {} | 390 ~CreditCardValidationDelegate() {} |
| 391 | 391 |
| 392 bool CreditCardEditorViewController::CreditCardValidationDelegate:: | 392 bool CreditCardEditorViewController::CreditCardValidationDelegate:: |
| 393 ValidateTextfield(views::Textfield* textfield) { | 393 ValidateTextfield(views::Textfield* textfield, bool display_error) { |
| 394 return ValidateValue(textfield->text()); | 394 return ValidateValue(textfield->text(), display_error); |
| 395 } | 395 } |
| 396 | 396 |
| 397 bool CreditCardEditorViewController::CreditCardValidationDelegate:: | 397 bool CreditCardEditorViewController::CreditCardValidationDelegate:: |
| 398 ValidateCombobox(views::Combobox* combobox) { | 398 ValidateCombobox(views::Combobox* combobox, bool display_error) { |
| 399 // The billing address ID is the selected item identifier and not the combobox | 399 // The billing address ID is the selected item identifier and not the combobox |
| 400 // value itself. | 400 // value itself. |
| 401 if (field_.type == kBillingAddressType) { | 401 if (field_.type == kBillingAddressType) { |
| 402 // TODO(crbug.com/718905) Find a way to deal with existing incomplete | 402 // TODO(crbug.com/718905) Find a way to deal with existing incomplete |
| 403 // addresses when choosing them as billing addresses. | 403 // addresses when choosing them as billing addresses. |
| 404 autofill::AddressComboboxModel* model = | 404 autofill::AddressComboboxModel* model = |
| 405 static_cast<autofill::AddressComboboxModel*>(combobox->model()); | 405 static_cast<autofill::AddressComboboxModel*>(combobox->model()); |
| 406 return !model->GetItemIdentifierAt(combobox->selected_index()).empty(); | 406 return !model->GetItemIdentifierAt(combobox->selected_index()).empty(); |
| 407 } | 407 } |
| 408 return ValidateValue(combobox->GetTextForRow(combobox->selected_index())); | 408 return ValidateValue(combobox->GetTextForRow(combobox->selected_index()), |
| 409 display_error); | |
| 409 } | 410 } |
| 410 | 411 |
| 411 bool CreditCardEditorViewController::CreditCardValidationDelegate:: | 412 bool CreditCardEditorViewController::CreditCardValidationDelegate:: |
| 412 ValidateValue(const base::string16& value) { | 413 ValidateValue(const base::string16& value, bool display_error) { |
| 413 if (!value.empty()) { | 414 if (!value.empty()) { |
| 414 base::string16 error_message; | 415 base::string16 error_message; |
| 415 bool is_valid = | 416 bool is_valid = |
| 416 field_.type == autofill::CREDIT_CARD_NUMBER | 417 field_.type == autofill::CREDIT_CARD_NUMBER |
| 417 ? autofill::IsValidCreditCardNumberForBasicCardNetworks( | 418 ? autofill::IsValidCreditCardNumberForBasicCardNetworks( |
| 418 value, supported_card_networks_, &error_message) | 419 value, supported_card_networks_, &error_message) |
| 419 : autofill::IsValidForType(value, field_.type, &error_message); | 420 : autofill::IsValidForType(value, field_.type, &error_message); |
| 420 controller_->DisplayErrorMessageForField(field_, error_message); | 421 if (display_error) |
| 422 controller_->DisplayErrorMessageForField(field_, error_message); | |
| 421 return is_valid; | 423 return is_valid; |
| 422 } | 424 } |
| 423 | 425 |
| 424 bool is_required_valid = !field_.required; | 426 bool is_required_valid = !field_.required; |
| 425 const base::string16 displayed_message = | 427 const base::string16 displayed_message = |
| 426 is_required_valid ? base::ASCIIToUTF16("") | 428 is_required_valid ? base::ASCIIToUTF16("") |
| 427 : l10n_util::GetStringUTF16( | 429 : l10n_util::GetStringUTF16( |
| 428 IDS_PAYMENTS_FIELD_REQUIRED_VALIDATION_MESSAGE); | 430 IDS_PAYMENTS_FIELD_REQUIRED_VALIDATION_MESSAGE); |
| 429 controller_->DisplayErrorMessageForField(field_, displayed_message); | 431 if (display_error) |
| 432 controller_->DisplayErrorMessageForField(field_, displayed_message); | |
| 430 return is_required_valid; | 433 return is_required_valid; |
| 431 } | 434 } |
| 432 | 435 |
| 433 bool CreditCardEditorViewController::GetSheetId(DialogViewID* sheet_id) { | 436 bool CreditCardEditorViewController::GetSheetId(DialogViewID* sheet_id) { |
| 434 *sheet_id = DialogViewID::CREDIT_CARD_EDITOR_SHEET; | 437 *sheet_id = DialogViewID::CREDIT_CARD_EDITOR_SHEET; |
| 435 return true; | 438 return true; |
| 436 } | 439 } |
| 437 | 440 |
| 438 } // namespace payments | 441 } // namespace payments |
| OLD | NEW |