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

Unified Diff: chrome/browser/ui/views/payments/contact_info_editor_view_controller.cc

Issue 2881643002: Focus first invalid field of payment request editor (Closed)
Patch Set: Last final nit :-) Created 3 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/ui/views/payments/contact_info_editor_view_controller.cc
diff --git a/chrome/browser/ui/views/payments/contact_info_editor_view_controller.cc b/chrome/browser/ui/views/payments/contact_info_editor_view_controller.cc
index f9febb957e6cc5269bccd0084cb631fa87a95968..1124918d854f8e8ac991467229dc18af6a81082d 100644
--- a/chrome/browser/ui/views/payments/contact_info_editor_view_controller.cc
+++ b/chrome/browser/ui/views/payments/contact_info_editor_view_controller.cc
@@ -4,6 +4,8 @@
#include "chrome/browser/ui/views/payments/contact_info_editor_view_controller.h"
+#include <utility>
+
#include "base/strings/utf_string_conversions.h"
#include "chrome/browser/ui/views/payments/validating_textfield.h"
#include "components/autofill/core/browser/autofill_country.h"
@@ -150,14 +152,29 @@ ContactInfoEditorViewController::ContactInfoValidationDelegate::
~ContactInfoValidationDelegate() {}
bool ContactInfoEditorViewController::ContactInfoValidationDelegate::
- ValidateTextfield(views::Textfield* textfield) {
- bool is_valid = true;
+ IsValidTextfield(views::Textfield* textfield) {
+ return ValidateTextfield(textfield, nullptr);
+}
+
+bool ContactInfoEditorViewController::ContactInfoValidationDelegate::
+ TextfieldValueChanged(views::Textfield* textfield) {
base::string16 error_message;
+ bool is_valid = ValidateTextfield(textfield, &error_message);
+ controller_->DisplayErrorMessageForField(field_, error_message);
+ return is_valid;
+}
+
+bool ContactInfoEditorViewController::ContactInfoValidationDelegate::
+ ValidateTextfield(views::Textfield* textfield,
+ base::string16* error_message) {
+ bool is_valid = true;
if (textfield->text().empty()) {
is_valid = false;
- error_message = l10n_util::GetStringUTF16(
- IDS_PAYMENTS_FIELD_REQUIRED_VALIDATION_MESSAGE);
+ if (error_message) {
+ *error_message = l10n_util::GetStringUTF16(
+ IDS_PAYMENTS_FIELD_REQUIRED_VALIDATION_MESSAGE);
+ }
} else {
switch (field_.type) {
case autofill::PHONE_HOME_WHOLE_NUMBER: {
@@ -166,8 +183,10 @@ bool ContactInfoEditorViewController::ContactInfoValidationDelegate::
if (!autofill::IsValidPhoneNumber(textfield->text(),
default_region_code)) {
is_valid = false;
- error_message = l10n_util::GetStringUTF16(
- IDS_PAYMENTS_PHONE_INVALID_VALIDATION_MESSAGE);
+ if (error_message) {
+ *error_message = l10n_util::GetStringUTF16(
+ IDS_PAYMENTS_PHONE_INVALID_VALIDATION_MESSAGE);
+ }
}
break;
}
@@ -175,8 +194,10 @@ bool ContactInfoEditorViewController::ContactInfoValidationDelegate::
case autofill::EMAIL_ADDRESS: {
if (!autofill::IsValidEmailAddress(textfield->text())) {
is_valid = false;
- error_message = l10n_util::GetStringUTF16(
- IDS_PAYMENTS_EMAIL_INVALID_VALIDATION_MESSAGE);
+ if (error_message) {
+ *error_message = l10n_util::GetStringUTF16(
+ IDS_PAYMENTS_EMAIL_INVALID_VALIDATION_MESSAGE);
+ }
}
break;
}
@@ -194,12 +215,18 @@ bool ContactInfoEditorViewController::ContactInfoValidationDelegate::
}
}
- controller_->DisplayErrorMessageForField(field_, error_message);
return is_valid;
}
bool ContactInfoEditorViewController::ContactInfoValidationDelegate::
- ValidateCombobox(views::Combobox* combobox) {
+ IsValidCombobox(views::Combobox* combobox) {
+ // This UI doesn't contain any comboboxes.
+ NOTREACHED();
+ return true;
+}
+
+bool ContactInfoEditorViewController::ContactInfoValidationDelegate::
+ ComboboxValueChanged(views::Combobox* combobox) {
// This UI doesn't contain any comboboxes.
NOTREACHED();
return true;

Powered by Google App Engine
This is Rietveld 408576698