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

Unified Diff: chrome/android/java/src/org/chromium/chrome/browser/payments/ui/EditorView.java

Issue 2286563002: Add credit card scanner to payments UI. (Closed)
Patch Set: Rename flag to match histograms.xml Created 4 years, 3 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/android/java/src/org/chromium/chrome/browser/payments/ui/EditorView.java
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/payments/ui/EditorView.java b/chrome/android/java/src/org/chromium/chrome/browser/payments/ui/EditorView.java
index 033bfeb48a28f4c9663e83f785c42996fbd850c7..4b40a2546354b5e84c3b7bbaf4ff8175565e7008 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/payments/ui/EditorView.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/payments/ui/EditorView.java
@@ -64,7 +64,7 @@ public class EditorView extends AlwaysDismissedDialog
private final Handler mHandler;
private final TextView.OnEditorActionListener mEditorActionListener;
private final int mHalfRowMargin;
- private final List<Validatable> mCheckableFields;
+ private final List<EditorFieldView> mFieldViews;
private final List<EditText> mEditableTextFields;
private final List<Spinner> mDropdownFields;
private final InputFilter mCardNumberInputFilter;
@@ -109,7 +109,7 @@ public class EditorView extends AlwaysDismissedDialog
mHalfRowMargin = activity.getResources().getDimensionPixelSize(
R.dimen.payments_section_large_spacing);
- mCheckableFields = new ArrayList<>();
+ mFieldViews = new ArrayList<>();
mEditableTextFields = new ArrayList<>();
mDropdownFields = new ArrayList<>();
@@ -203,18 +203,18 @@ public class EditorView extends AlwaysDismissedDialog
* @return Whether all fields contain valid information.
*/
private boolean validateForm() {
- final List<Validatable> invalidViews = getViewsWithInvalidInformation(true);
+ final List<EditorFieldView> invalidViews = getViewsWithInvalidInformation(true);
// Iterate over all the fields to update what errors are displayed, which is necessary to
// to clear existing errors on any newly valid fields.
- for (int i = 0; i < mCheckableFields.size(); i++) {
- Validatable fieldView = mCheckableFields.get(i);
+ for (int i = 0; i < mFieldViews.size(); i++) {
+ EditorFieldView fieldView = mFieldViews.get(i);
fieldView.updateDisplayedError(invalidViews.contains(fieldView));
}
if (!invalidViews.isEmpty()) {
// Make sure that focus is on an invalid field.
- Validatable focusedField = getValidatable(getCurrentFocus());
+ EditorFieldView focusedField = getEditorTextField(getCurrentFocus());
if (invalidViews.contains(focusedField)) {
// The focused field is invalid, but it may be scrolled off screen. Scroll to it.
focusedField.scrollToAndFocus();
@@ -229,12 +229,12 @@ public class EditorView extends AlwaysDismissedDialog
}
/** @return The validatable item for the given view. */
- private Validatable getValidatable(View v) {
+ private EditorFieldView getEditorTextField(View v) {
if (v instanceof TextView && v.getParent() != null
- && v.getParent() instanceof EditorTextField) {
- return (EditorTextField) v.getParent();
+ && v.getParent() instanceof EditorFieldView) {
+ return (EditorFieldView) v.getParent();
} else if (v instanceof Spinner && v.getTag() != null) {
- return (Validatable) v.getTag();
+ return (EditorFieldView) v.getTag();
} else {
return null;
}
@@ -284,7 +284,7 @@ public class EditorView extends AlwaysDismissedDialog
removeTextChangedListenersAndInputFilters();
mDataView = (ViewGroup) mLayout.findViewById(R.id.contents);
mDataView.removeAllViews();
- mCheckableFields.clear();
+ mFieldViews.clear();
mEditableTextFields.clear();
mDropdownFields.clear();
@@ -347,7 +347,7 @@ public class EditorView extends AlwaysDismissedDialog
};
EditorDropdownField dropdownView =
new EditorDropdownField(mContext, parent, fieldModel, prepareEditorRunnable);
- mCheckableFields.add(dropdownView);
+ mFieldViews.add(dropdownView);
mDropdownFields.add(dropdownView.getDropdown());
childView = dropdownView.getLayout();
@@ -377,7 +377,7 @@ public class EditorView extends AlwaysDismissedDialog
EditorTextField inputLayout = new EditorTextField(mContext, fieldModel,
mEditorActionListener, filter, formatter, mObserverForTest);
- mCheckableFields.add(inputLayout);
+ mFieldViews.add(inputLayout);
EditText input = inputLayout.getEditText();
mEditableTextFields.add(input);
@@ -418,7 +418,7 @@ public class EditorView extends AlwaysDismissedDialog
show();
// Immediately focus the first invalid field to make it faster to edit.
- final List<Validatable> invalidViews = getViewsWithInvalidInformation(false);
+ final List<EditorFieldView> invalidViews = getViewsWithInvalidInformation(false);
if (!invalidViews.isEmpty()) {
mHandler.post(new Runnable() {
@Override
@@ -430,6 +430,13 @@ public class EditorView extends AlwaysDismissedDialog
}
}
+ /** Rereads the values in the model to update the UI. */
+ public void update() {
+ for (int i = 0; i < mFieldViews.size(); i++) {
+ mFieldViews.get(i).update();
+ }
+ }
+
@Override
public void onDismiss(DialogInterface dialog) {
removeTextChangedListenersAndInputFilters();
@@ -449,10 +456,10 @@ public class EditorView extends AlwaysDismissedDialog
}
}
- private List<Validatable> getViewsWithInvalidInformation(boolean findAll) {
- List<Validatable> invalidViews = new ArrayList<>();
- for (int i = 0; i < mCheckableFields.size(); i++) {
- Validatable fieldView = mCheckableFields.get(i);
+ private List<EditorFieldView> getViewsWithInvalidInformation(boolean findAll) {
+ List<EditorFieldView> invalidViews = new ArrayList<>();
+ for (int i = 0; i < mFieldViews.size(); i++) {
+ EditorFieldView fieldView = mFieldViews.get(i);
if (!fieldView.isValid()) {
invalidViews.add(fieldView);
if (!findAll) break;

Powered by Google App Engine
This is Rietveld 408576698