Loading core/java/android/content/res/ColorStateList.java +23 −4 Original line number Diff line number Diff line Loading @@ -271,7 +271,7 @@ public class ColorStateList implements Parcelable { final TypedArray a = Resources.obtainAttributes(r, theme, attrs, R.styleable.ColorStateListItem); final int[] themeAttrs = a.extractThemeAttrs(); final int baseColor = a.getColor(R.styleable.ColorStateListItem_color, 0); final int baseColor = a.getColor(R.styleable.ColorStateListItem_color, Color.MAGENTA); final float alphaMod = a.getFloat(R.styleable.ColorStateListItem_alpha, 1.0f); changingConfigurations |= a.getChangingConfigurations(); Loading @@ -296,7 +296,9 @@ public class ColorStateList implements Parcelable { } stateSpec = StateSet.trimStateSet(stateSpec, j); // Apply alpha modulation. // Apply alpha modulation. If we couldn't resolve the color or // alpha yet, the default values leave us enough information to // modulate again during applyTheme(). final int color = modulateColorAlpha(baseColor, alphaMod); if (listSize == 0 || stateSpec.length == 0) { defaultColor = color; Loading Loading @@ -365,14 +367,31 @@ public class ColorStateList implements Parcelable { if (themeAttrsList[i] != null) { final TypedArray a = t.resolveAttributes(themeAttrsList[i], R.styleable.ColorStateListItem); final float defaultAlphaMod; if (themeAttrsList[i][R.styleable.ColorStateListItem_color] != 0) { // If the base color hasn't been resolved yet, the current // color's alpha channel is either full-opacity (if we // haven't resolved the alpha modulation yet) or // pre-modulated. Either is okay as a default value. defaultAlphaMod = Color.alpha(mColors[i]) / 255.0f; } else { // Otherwise, the only correct default value is 1. Even if // nothing is resolved during this call, we can apply this // multiple times without losing of information. defaultAlphaMod = 1.0f; } final int baseColor = a.getColor( R.styleable.ColorStateListItem_color, mColors[i]); final float alphaMod = a.getFloat( R.styleable.ColorStateListItem_alpha, 1.0f); R.styleable.ColorStateListItem_alpha, defaultAlphaMod); mColors[i] = modulateColorAlpha(baseColor, alphaMod); // Account for any configuration changes. mChangingConfigurations |= a.getChangingConfigurations(); // Extract the theme attributes, if any. themeAttrsList[i] = a.extractThemeAttrs(themeAttrsList[i]); if (themeAttrsList[i] != null) { hasUnresolvedAttrs = true; Loading Loading
core/java/android/content/res/ColorStateList.java +23 −4 Original line number Diff line number Diff line Loading @@ -271,7 +271,7 @@ public class ColorStateList implements Parcelable { final TypedArray a = Resources.obtainAttributes(r, theme, attrs, R.styleable.ColorStateListItem); final int[] themeAttrs = a.extractThemeAttrs(); final int baseColor = a.getColor(R.styleable.ColorStateListItem_color, 0); final int baseColor = a.getColor(R.styleable.ColorStateListItem_color, Color.MAGENTA); final float alphaMod = a.getFloat(R.styleable.ColorStateListItem_alpha, 1.0f); changingConfigurations |= a.getChangingConfigurations(); Loading @@ -296,7 +296,9 @@ public class ColorStateList implements Parcelable { } stateSpec = StateSet.trimStateSet(stateSpec, j); // Apply alpha modulation. // Apply alpha modulation. If we couldn't resolve the color or // alpha yet, the default values leave us enough information to // modulate again during applyTheme(). final int color = modulateColorAlpha(baseColor, alphaMod); if (listSize == 0 || stateSpec.length == 0) { defaultColor = color; Loading Loading @@ -365,14 +367,31 @@ public class ColorStateList implements Parcelable { if (themeAttrsList[i] != null) { final TypedArray a = t.resolveAttributes(themeAttrsList[i], R.styleable.ColorStateListItem); final float defaultAlphaMod; if (themeAttrsList[i][R.styleable.ColorStateListItem_color] != 0) { // If the base color hasn't been resolved yet, the current // color's alpha channel is either full-opacity (if we // haven't resolved the alpha modulation yet) or // pre-modulated. Either is okay as a default value. defaultAlphaMod = Color.alpha(mColors[i]) / 255.0f; } else { // Otherwise, the only correct default value is 1. Even if // nothing is resolved during this call, we can apply this // multiple times without losing of information. defaultAlphaMod = 1.0f; } final int baseColor = a.getColor( R.styleable.ColorStateListItem_color, mColors[i]); final float alphaMod = a.getFloat( R.styleable.ColorStateListItem_alpha, 1.0f); R.styleable.ColorStateListItem_alpha, defaultAlphaMod); mColors[i] = modulateColorAlpha(baseColor, alphaMod); // Account for any configuration changes. mChangingConfigurations |= a.getChangingConfigurations(); // Extract the theme attributes, if any. themeAttrsList[i] = a.extractThemeAttrs(themeAttrsList[i]); if (themeAttrsList[i] != null) { hasUnresolvedAttrs = true; Loading