Fix ColorStateListDrawable container callback API
Bug: 120866624
Test: atest ColorStateListDrawableTest
Change-Id: Ie2ccec13b7b270d013e6f52d86227e5be1eb776a
diff --git a/graphics/java/android/graphics/drawable/ColorStateListDrawable.java b/graphics/java/android/graphics/drawable/ColorStateListDrawable.java
index c0c6a4f..5181d89 100644
--- a/graphics/java/android/graphics/drawable/ColorStateListDrawable.java
+++ b/graphics/java/android/graphics/drawable/ColorStateListDrawable.java
@@ -157,28 +157,22 @@
@Override
public void invalidateDrawable(Drawable who) {
- final Callback callback = getCallback();
-
- if (callback != null) {
- callback.invalidateDrawable(who);
+ if (who == mColorDrawable && getCallback() != null) {
+ getCallback().invalidateDrawable(this);
}
}
@Override
public void scheduleDrawable(Drawable who, Runnable what, long when) {
- final Callback callback = getCallback();
-
- if (callback != null) {
- callback.scheduleDrawable(who, what, when);
+ if (who == mColorDrawable && getCallback() != null) {
+ getCallback().scheduleDrawable(this, what, when);
}
}
@Override
public void unscheduleDrawable(Drawable who, Runnable what) {
- final Callback callback = getCallback();
-
- if (callback != null) {
- callback.unscheduleDrawable(who, what);
+ if (who == mColorDrawable && getCallback() != null) {
+ getCallback().unscheduleDrawable(this, what);
}
}