package com.marverenic.music.view; import android.support.v7.widget.DefaultItemAnimator; import android.support.v7.widget.RecyclerView.ViewHolder; import com.marverenic.music.adapter.QueueSection; import com.marverenic.music.adapter.SpacerSingleton; public class QueueAnimator extends DefaultItemAnimator { public QueueAnimator() { setSupportsChangeAnimations(false); } @Override public boolean animateAdd(ViewHolder holder) { if (shouldAnimateAdd(holder)) { return super.animateAdd(holder); } else { dispatchAddFinished(holder); return false; } } private boolean shouldAnimateAdd(ViewHolder holder) { if (holder instanceof SpacerSingleton.ViewHolder) { return false; } else if (holder instanceof QueueSection.ViewHolder) { return true; } return false; } @Override public boolean animateRemove(ViewHolder holder) { if (shouldAnimateRemove(holder)) { return super.animateRemove(holder); } else { dispatchRemoveFinished(holder); return false; } } private boolean shouldAnimateRemove(ViewHolder holder) { if (holder instanceof SpacerSingleton.ViewHolder) { return false; } else if (holder instanceof QueueSection.ViewHolder) { return true; } return true; } }