Fix ColorStateList bug.
A ColorStateList should be stateful when it has at least one
non-wildcard state.
Test: Manually
Bug: 35487255
Change-Id: Id94b6a8d172e22a522f73fcb378e342656f95e39
diff --git a/core/java/android/content/res/ColorStateList.java b/core/java/android/content/res/ColorStateList.java
index 273522a..a46db06 100644
--- a/core/java/android/content/res/ColorStateList.java
+++ b/core/java/android/content/res/ColorStateList.java
@@ -508,8 +508,8 @@
}
/**
- * Indicates whether this color state list contains more than one state spec
- * and will change color based on state.
+ * Indicates whether this color state list contains at least one state spec
+ * and the first spec is not empty (e.g. match-all).
*
* @return True if this color state list changes color based on state, false
* otherwise.
@@ -517,7 +517,7 @@
*/
@Override
public boolean isStateful() {
- return mStateSpecs.length > 1;
+ return mStateSpecs.length >= 1 && mStateSpecs[0].length > 0;
}
/**