1531667420f0cb59e01e0ae5928392469006148ddSam Juddpackage com.bumptech.glide.request;
2531667420f0cb59e01e0ae5928392469006148ddSam Judd
3531667420f0cb59e01e0ae5928392469006148ddSam Juddimport android.graphics.drawable.Drawable;
4531667420f0cb59e01e0ae5928392469006148ddSam Juddimport android.view.View;
5531667420f0cb59e01e0ae5928392469006148ddSam Juddimport com.bumptech.glide.request.target.Target;
6531667420f0cb59e01e0ae5928392469006148ddSam Judd
7531667420f0cb59e01e0ae5928392469006148ddSam Juddpublic class ViewPropertyAnimation implements GlideAnimation {
8531667420f0cb59e01e0ae5928392469006148ddSam Judd
9531667420f0cb59e01e0ae5928392469006148ddSam Judd    public interface Animator {
10531667420f0cb59e01e0ae5928392469006148ddSam Judd        public void animate(View view);
11531667420f0cb59e01e0ae5928392469006148ddSam Judd    }
12531667420f0cb59e01e0ae5928392469006148ddSam Judd
13531667420f0cb59e01e0ae5928392469006148ddSam Judd    public static class ViewPropertyAnimationFactory implements GlideAnimationFactory {
14531667420f0cb59e01e0ae5928392469006148ddSam Judd        private Animator animator;
15531667420f0cb59e01e0ae5928392469006148ddSam Judd        private ViewPropertyAnimation animation;
16531667420f0cb59e01e0ae5928392469006148ddSam Judd
17531667420f0cb59e01e0ae5928392469006148ddSam Judd        public ViewPropertyAnimationFactory(Animator animator) {
18531667420f0cb59e01e0ae5928392469006148ddSam Judd            this.animator = animator;
19531667420f0cb59e01e0ae5928392469006148ddSam Judd        }
20531667420f0cb59e01e0ae5928392469006148ddSam Judd
21531667420f0cb59e01e0ae5928392469006148ddSam Judd        @Override
22531667420f0cb59e01e0ae5928392469006148ddSam Judd        public GlideAnimation build(boolean isFromMemoryCache, boolean isFirstImage) {
23531667420f0cb59e01e0ae5928392469006148ddSam Judd            if (isFromMemoryCache || !isFirstImage) {
24531667420f0cb59e01e0ae5928392469006148ddSam Judd                return NoAnimation.get();
25531667420f0cb59e01e0ae5928392469006148ddSam Judd            }
26531667420f0cb59e01e0ae5928392469006148ddSam Judd            if (animation == null) {
27531667420f0cb59e01e0ae5928392469006148ddSam Judd                animation = new ViewPropertyAnimation(animator);
28531667420f0cb59e01e0ae5928392469006148ddSam Judd            }
29531667420f0cb59e01e0ae5928392469006148ddSam Judd
30531667420f0cb59e01e0ae5928392469006148ddSam Judd            return animation;
31531667420f0cb59e01e0ae5928392469006148ddSam Judd        }
32531667420f0cb59e01e0ae5928392469006148ddSam Judd    }
33531667420f0cb59e01e0ae5928392469006148ddSam Judd
34531667420f0cb59e01e0ae5928392469006148ddSam Judd    private Animator animator;
35531667420f0cb59e01e0ae5928392469006148ddSam Judd
36531667420f0cb59e01e0ae5928392469006148ddSam Judd    public ViewPropertyAnimation(Animator animator) {
37531667420f0cb59e01e0ae5928392469006148ddSam Judd        this.animator = animator;
38531667420f0cb59e01e0ae5928392469006148ddSam Judd    }
39531667420f0cb59e01e0ae5928392469006148ddSam Judd
40531667420f0cb59e01e0ae5928392469006148ddSam Judd    @Override
41531667420f0cb59e01e0ae5928392469006148ddSam Judd    public boolean animate(Drawable previous, Object current, View view, Target target) {
42531667420f0cb59e01e0ae5928392469006148ddSam Judd        animator.animate(view);
43531667420f0cb59e01e0ae5928392469006148ddSam Judd        return false;
44531667420f0cb59e01e0ae5928392469006148ddSam Judd    }
45531667420f0cb59e01e0ae5928392469006148ddSam Judd}
46