Skip to content

Commit 8181201

Browse files
Gilles DebunneAndroid (Google) Code Review
authored andcommitted
Merge "Invalidate display list on alpha change"
2 parents d6049d4 + 5e78d9b commit 8181201

File tree

1 file changed

+15
-9
lines changed

1 file changed

+15
-9
lines changed

core/java/android/widget/TextView.java

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4637,19 +4637,25 @@ protected boolean onSetAlpha(int alpha) {
46374637
// Alpha is supported if and only if the drawing can be done in one pass.
46384638
// TODO text with spans with a background color currently do not respect this alpha.
46394639
if (getBackground() == null) {
4640-
mCurrentAlpha = alpha;
4641-
final Drawables dr = mDrawables;
4642-
if (dr != null) {
4643-
if (dr.mDrawableLeft != null) dr.mDrawableLeft.mutate().setAlpha(alpha);
4644-
if (dr.mDrawableTop != null) dr.mDrawableTop.mutate().setAlpha(alpha);
4645-
if (dr.mDrawableRight != null) dr.mDrawableRight.mutate().setAlpha(alpha);
4646-
if (dr.mDrawableBottom != null) dr.mDrawableBottom.mutate().setAlpha(alpha);
4647-
if (dr.mDrawableStart != null) dr.mDrawableStart.mutate().setAlpha(alpha);
4648-
if (dr.mDrawableEnd != null) dr.mDrawableEnd.mutate().setAlpha(alpha);
4640+
if (mCurrentAlpha != alpha) {
4641+
mCurrentAlpha = alpha;
4642+
final Drawables dr = mDrawables;
4643+
if (dr != null) {
4644+
if (dr.mDrawableLeft != null) dr.mDrawableLeft.mutate().setAlpha(alpha);
4645+
if (dr.mDrawableTop != null) dr.mDrawableTop.mutate().setAlpha(alpha);
4646+
if (dr.mDrawableRight != null) dr.mDrawableRight.mutate().setAlpha(alpha);
4647+
if (dr.mDrawableBottom != null) dr.mDrawableBottom.mutate().setAlpha(alpha);
4648+
if (dr.mDrawableStart != null) dr.mDrawableStart.mutate().setAlpha(alpha);
4649+
if (dr.mDrawableEnd != null) dr.mDrawableEnd.mutate().setAlpha(alpha);
4650+
}
4651+
mTextDisplayListIsValid = false;
46494652
}
46504653
return true;
46514654
}
46524655

4656+
if (mCurrentAlpha != 255) {
4657+
mTextDisplayListIsValid = false;
4658+
}
46534659
mCurrentAlpha = 255;
46544660
return false;
46554661
}

0 commit comments

Comments
 (0)