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