Skip to content

Commit

Permalink
perfect Diff
Browse files Browse the repository at this point in the history
  • Loading branch information
limuyang committed Jul 19, 2019
1 parent 22ea7b6 commit 4a00016
Showing 1 changed file with 11 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -512,13 +512,23 @@ public void setNewData(@Nullable List<T> data) {
* @param baseQuickDiffCallback implementation {@link BaseQuickDiffCallback}
*/
public void setNewDiffData(@NonNull BaseQuickDiffCallback<T> baseQuickDiffCallback) {
setNewDiffData(baseQuickDiffCallback, false);
}

/**
* use Diff setting up a new instance to data
*
* @param baseQuickDiffCallback implementation {@link BaseQuickDiffCallback}.
* @param detectMoves Whether to detect the movement of the Item
*/
public void setNewDiffData(@NonNull BaseQuickDiffCallback<T> baseQuickDiffCallback, boolean detectMoves) {
if (getEmptyViewCount() == 1) {
// If the current view is an empty view, set the new data directly without diff
setNewData(baseQuickDiffCallback.getNewList());
return;
}
baseQuickDiffCallback.setOldList(this.getData());
DiffUtil.DiffResult diffResult = DiffUtil.calculateDiff(baseQuickDiffCallback);
DiffUtil.DiffResult diffResult = DiffUtil.calculateDiff(baseQuickDiffCallback, detectMoves);
diffResult.dispatchUpdatesTo(new BaseQuickAdapterListUpdateCallback(this));
mData = baseQuickDiffCallback.getNewList();
}
Expand Down

0 comments on commit 4a00016

Please sign in to comment.