/* * This file provided by Facebook is for non-commercial testing and evaluation * purposes only. Facebook reserves all rights not expressly granted. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL * FACEBOOK BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ package com.facebook.fresco.samples.showcase.imageformat.keyframes; import android.graphics.drawable.Animatable; import com.facebook.drawee.drawable.ForwardingDrawable; import com.facebook.keyframes.KeyframesDrawable; /** * Animation of KeyframesDrawables needs to be explicitly started and stopped. * AnimatableKeyframesDrawable wraps a KeyframesDrawables and allows Fresco to automatically start * and stop the animated as needed (as long as setAutoPlayAnimations(true) is called on the * DraweeController associated with the DraweeView used to display the image. */ class AnimatableKeyframesDrawable extends ForwardingDrawable implements Animatable { private final KeyframesDrawable mDrawable; private boolean mAnimating; AnimatableKeyframesDrawable(KeyframesDrawable drawable) { super(drawable); mDrawable = drawable; } @Override public void start() { mDrawable.startAnimation(); mAnimating = true; } @Override public void stop() { mDrawable.stopAnimation(); mAnimating = false; } @Override public boolean isRunning() { return mAnimating; } }