diff --git a/app/src/main/java/com/example/sprout/refactor/adapter/DiffCallback.java b/app/src/main/java/com/example/sprout/refactor/adapter/DiffCallback.java new file mode 100644 index 0000000..aa637c3 --- /dev/null +++ b/app/src/main/java/com/example/sprout/refactor/adapter/DiffCallback.java @@ -0,0 +1,38 @@ +package com.example.sprout.refactor.adapter; + +import android.support.v7.util.DiffUtil; + +import java.util.List; + +/** + * DiffUtilのCallbackの基底クラス + * + * @param 差分を出すクラス + * @author matsumoto_k + */ +public abstract class DiffCallback extends DiffUtil.Callback { + final protected List oldList; + final protected List newList; + + public DiffCallback(List oldList, List newList) { + this.oldList = oldList; + this.newList = newList; + } + + @Override + public int getOldListSize() { + return oldList.size(); + } + + @Override + public int getNewListSize() { + return newList.size(); + } + + @Override + public boolean areItemsTheSame(int oldItemPosition, int newItemPosition) { + return oldList.get(oldItemPosition) == newList.get(newItemPosition); + } + + public abstract Object getChangePayload(int oldItemPosition, int newItemPosition); +}