From 8ed124d57ee4a5c0cbc7b7b1b67f1f6496630396 Mon Sep 17 00:00:00 2001 From: Leon Scroggins III Date: Tue, 30 Jan 2018 17:16:52 -0500 Subject: [PATCH] Implement AnimatedImageDrawable.getColorFilter Test: CTS: Ie9766f24164d6b035944b1fe82c2d285482ad1d2 Change-Id: I7f2cb0da918ae67c7a5906a478012fa25678294c --- .../drawable/AnimatedImageDrawable.java | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/graphics/java/android/graphics/drawable/AnimatedImageDrawable.java b/graphics/java/android/graphics/drawable/AnimatedImageDrawable.java index 86e6fa8c2fc57..598807d0309dd 100644 --- a/graphics/java/android/graphics/drawable/AnimatedImageDrawable.java +++ b/graphics/java/android/graphics/drawable/AnimatedImageDrawable.java @@ -83,6 +83,8 @@ public class AnimatedImageDrawable extends Drawable implements Animatable2 { private Runnable mRunnable; + private ColorFilter mColorFilter; + /** * Pass this to {@link #setLoopCount} to loop infinitely. * @@ -276,9 +278,18 @@ public class AnimatedImageDrawable extends Drawable implements Animatable2 { throw new IllegalStateException("called setColorFilter on empty AnimatedImageDrawable"); } - long nativeFilter = colorFilter == null ? 0 : colorFilter.getNativeInstance(); - nSetColorFilter(mState.mNativePtr, nativeFilter); - invalidateSelf(); + if (colorFilter != mColorFilter) { + mColorFilter = colorFilter; + long nativeFilter = colorFilter == null ? 0 : colorFilter.getNativeInstance(); + nSetColorFilter(mState.mNativePtr, nativeFilter); + invalidateSelf(); + } + } + + @Override + @Nullable + public ColorFilter getColorFilter() { + return mColorFilter; } @Override