Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 77cb9eaa authored by Winson Chung's avatar Winson Chung Committed by Automerger Merge Worker
Browse files

Merge "Ensure that animated key button drawable has callbacks" into rvc-dev...

Merge "Ensure that animated key button drawable has callbacks" into rvc-dev am: acf07500 am: 9542a56d am: 7bae7f27

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/12145664

Change-Id: I0c969975f52e43dd89a162ea3182e3af50121982
parents ad34b111 7bae7f27
Loading
Loading
Loading
Loading
+17 −0
Original line number Diff line number Diff line
@@ -80,6 +80,22 @@ public class KeyButtonDrawable extends Drawable {
    private final Paint mShadowPaint = new Paint(Paint.ANTI_ALIAS_FLAG | Paint.FILTER_BITMAP_FLAG);
    private final ShadowDrawableState mState;
    private AnimatedVectorDrawable mAnimatedDrawable;
    private final Callback mAnimatedDrawableCallback = new Callback() {
        @Override
        public void invalidateDrawable(@NonNull Drawable who) {
            invalidateSelf();
        }

        @Override
        public void scheduleDrawable(@NonNull Drawable who, @NonNull Runnable what, long when) {
            scheduleSelf(what, when);
        }

        @Override
        public void unscheduleDrawable(@NonNull Drawable who, @NonNull Runnable what) {
            unscheduleSelf(what);
        }
    };

    public KeyButtonDrawable(Drawable d, @ColorInt int lightColor, @ColorInt int darkColor,
            boolean horizontalFlip, Color ovalBackgroundColor) {
@@ -97,6 +113,7 @@ public class KeyButtonDrawable extends Drawable {
        }
        if (canAnimate()) {
            mAnimatedDrawable = (AnimatedVectorDrawable) mState.mChildState.newDrawable().mutate();
            mAnimatedDrawable.setCallback(mAnimatedDrawableCallback);
            setDrawableBounds(mAnimatedDrawable);
        }
    }