Set background on correct view
Bug: 31663756
Test: TextInputLayoutTest#testDrawableStateChanged
Change-Id: Ifab1595fb207d826801a001b1da208b985ade6e1
diff --git a/design/src/android/support/design/widget/TextInputLayout.java b/design/src/android/support/design/widget/TextInputLayout.java
index 2bbaace..40adf2d 100644
--- a/design/src/android/support/design/widget/TextInputLayout.java
+++ b/design/src/android/support/design/widget/TextInputLayout.java
@@ -868,7 +868,7 @@
// as the background. This has the unfortunate side-effect of wiping out any
// user set padding, but I'd hope that use of custom padding on an EditText
// is limited.
- ViewCompat.setBackground(mErrorView, newBg);
+ ViewCompat.setBackground(mEditText, newBg);
mHasReconstructedEditTextBackground = true;
}
}
diff --git a/design/tests/src/android/support/design/widget/TextInputLayoutTest.java b/design/tests/src/android/support/design/widget/TextInputLayoutTest.java
index fce619e..66ea00b 100755
--- a/design/tests/src/android/support/design/widget/TextInputLayoutTest.java
+++ b/design/tests/src/android/support/design/widget/TextInputLayoutTest.java
@@ -43,6 +43,7 @@
import android.graphics.drawable.ColorDrawable;
import android.graphics.drawable.Drawable;
import android.support.design.test.R;
+import android.support.test.annotation.UiThreadTest;
import android.support.test.espresso.NoMatchingViewException;
import android.support.test.espresso.ViewAssertion;
import android.test.suitebuilder.annotation.SmallTest;
@@ -216,6 +217,19 @@
onView(withId(R.id.textinput_edittext)).check(matches(not(isEnabled())));
}
+ /**
+ * Regression test for b/31663756.
+ */
+ @UiThreadTest
+ @Test
+ public void testDrawableStateChanged() {
+ final Activity activity = mActivityTestRule.getActivity();
+ final TextInputLayout layout = (TextInputLayout) activity.findViewById(R.id.textinput);
+
+ // Force a drawable state change.
+ layout.drawableStateChanged();
+ }
+
static ViewAssertion isHintExpanded(final boolean expanded) {
return new ViewAssertion() {
@Override