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

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

Issue 2113493002: [Payments] Switch to using TextInputLayouts, update statusbar color (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Comments Created 4 years, 6 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/EditorTextField.java
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/payments/ui/EditorTextField.java b/chrome/android/java/src/org/chromium/chrome/browser/payments/ui/EditorTextField.java
index fcafe77e934489be6011e223fb820bf8237ad660..f22122c800e2ccb760716f7c285e0ac4ac0f6f67 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/payments/ui/EditorTextField.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/payments/ui/EditorTextField.java
@@ -5,26 +5,24 @@
package org.chromium.chrome.browser.payments.ui;
import android.content.Context;
-import android.os.Build;
-import android.support.design.widget.TextInputLayout;
-import android.support.v7.widget.AppCompatAutoCompleteTextView;
import android.telephony.PhoneNumberFormattingTextWatcher;
import android.text.Editable;
import android.text.InputType;
import android.text.TextWatcher;
+import android.view.LayoutInflater;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.AutoCompleteTextView;
import android.widget.TextView.OnEditorActionListener;
import org.chromium.base.VisibleForTesting;
+import org.chromium.chrome.R;
import org.chromium.chrome.browser.payments.ui.PaymentRequestUI.PaymentRequestObserverForTest;
-
-import javax.annotation.Nullable;
+import org.chromium.chrome.browser.widget.CompatibilityTextInputLayout;
/** Handles validation and display of one field from the {@link EditorFieldModel}. */
@VisibleForTesting
-public class EditorTextField extends TextInputLayout {
+public class EditorTextField extends CompatibilityTextInputLayout {
/** The indicator for input fields that are required. */
private static final String REQUIRED_FIELD_INDICATOR = "*";
@@ -33,7 +31,6 @@ public class EditorTextField extends TextInputLayout {
private AutoCompleteTextView mInput;
private boolean mHasFocusedAtLeastOnce;
private PaymentRequestObserverForTest mObserverForTest;
- private boolean mIsBackgroundMutated;
public EditorTextField(Context context, final EditorFieldModel fieldModel,
OnEditorActionListener actionlistener, PhoneNumberFormattingTextWatcher formatter,
@@ -48,14 +45,11 @@ public class EditorTextField extends TextInputLayout {
if (fieldModel.isRequired()) label = label + REQUIRED_FIELD_INDICATOR;
setHint(label);
- // The TextView is a child of this class. The TextInputLayout manages how it looks.
- mInput = new AppCompatAutoCompleteTextView(getContext());
- addView(mInput);
-
+ // The EditText becomes a child of this class. The TextInputLayout manages how it looks.
+ LayoutInflater.from(context).inflate(R.layout.payments_request_editor_textview, this, true);
+ mInput = (AutoCompleteTextView) findViewById(R.id.text_view);
mInput.setText(fieldModel.getValue());
mInput.setOnEditorActionListener(actionlistener);
- mInput.getLayoutParams().width = LayoutParams.MATCH_PARENT;
- mInput.getLayoutParams().height = LayoutParams.WRAP_CONTENT;
// Validate the field when the user de-focuses it.
mInput.setOnFocusChangeListener(new OnFocusChangeListener() {
@@ -134,34 +128,11 @@ public class EditorTextField extends TextInputLayout {
}
}
- /**
- * Super gross, dirty, awful hack for dealing with bugs in version 23 of the support library.
- *
- * Gleaned using dirty things from comments on the Android bug and support library source:
- * https://code.google.com/p/android/issues/detail?id=190829
- *
- * TODO(dfalcantara): Remove this super gross dirty hack once Chrome can roll version 24:
- * https://crbug.com/603635
- */
- @Override
- public void setError(@Nullable CharSequence error) {
- if (!mIsBackgroundMutated && getEditText() != null && getEditText().getBackground() != null
- && ((Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP))) {
- getEditText().setBackground(
- getEditText().getBackground().getConstantState().newDrawable());
- getEditText().getBackground().mutate();
- mIsBackgroundMutated = true;
- }
-
- super.setError(error);
- }
-
/** @return The EditorFieldModel that the TextView represents. */
public EditorFieldModel getFieldModel() {
return mEditorFieldModel;
}
- /** @return The TextView for the field. */
@Override
public AutoCompleteTextView getEditText() {
return mInput;
@@ -174,6 +145,5 @@ public class EditorTextField extends TextInputLayout {
*/
public void updateDisplayedError(boolean showError) {
setError(showError ? mEditorFieldModel.getErrorMessage() : null);
- setErrorEnabled(showError);
}
}

Powered by Google App Engine
This is Rietveld 408576698