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

Commit b76b6e13 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: db55bf70

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

Change-Id: Ied410ff2a6197523d4c6c99aa350fa963f9cdb94
parents ad34b111 db55bf70
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);
        }
    }