Updated GradientDrawable setColor(ColorStateList) implementation to
match corresponding documentation to fall back to setColor(Color.TRANSPARENT) in the event that null is passed as the ColorStateList parameter Refactored implementation to directly call setColor(Color.TRANSPARENT) if setColor(null) is invoked, otherwise configure the solid colors and the fill Paint color to the ColorStateList and resolved color for the given state Bug: 64951083 Test: Compiled, flashed an updated build of master onto taimen and re-ran tests with updated implementation in GradientDrawableTest Change-Id: Ia7e9a995fc78e49d601931ca6af81470d90f8439
This commit is contained in:
@@ -930,16 +930,15 @@ public class GradientDrawable extends Drawable {
|
||||
* @see #getColor
|
||||
*/
|
||||
public void setColor(@Nullable ColorStateList colorStateList) {
|
||||
mGradientState.setSolidColors(colorStateList);
|
||||
final int color;
|
||||
if (colorStateList == null) {
|
||||
color = Color.TRANSPARENT;
|
||||
setColor(Color.TRANSPARENT);
|
||||
} else {
|
||||
final int[] stateSet = getState();
|
||||
color = colorStateList.getColorForState(stateSet, 0);
|
||||
final int color = colorStateList.getColorForState(stateSet, 0);
|
||||
mGradientState.setSolidColors(colorStateList);
|
||||
mFillPaint.setColor(color);
|
||||
invalidateSelf();
|
||||
}
|
||||
mFillPaint.setColor(color);
|
||||
invalidateSelf();
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user