@Nullable @Override public Object getChangePayload(int oldItemPosition, int newItemPosition) { final ViewItem oldItem = oldItems.get(oldItemPosition); final ViewItem newItem = newItems.get(newItemPosition); return childDiffUtilComparators.get(oldItem.viewType).getChangePayload(oldItem.model, newItem.model); } }
@Override public boolean areContentsTheSame(List<ViewItem> oldItems, List<ViewItem> newItems) { if (oldItems.size() != newItems.size()) { return false; } for (int i = 0; i < oldItems.size(); i++) { final ViewItem oldItem = oldItems.get(i); final ViewItem newItem = newItems.get(i); if (oldItem.viewType != newItem.viewType) { return false; } final DiffUtilComparator comparator = childDiffUtilComparators.get(oldItem.viewType); if (!comparator.areItemsTheSame(oldItem.model, newItem.model)) { return false; } if (!comparator.areContentsTheSame(oldItem.model, newItem.model)) { return false; } } return true; }
@Override public boolean areContentsTheSame(int oldItemPosition, int newItemPosition) { final ViewItem oldItem = oldList.get(oldItemPosition); final ViewItem newItem = newList.get(newItemPosition); // noinspection unchecked return mapViewTypeToItemComparator .get(oldItem.viewType) .areContentsTheSame(oldItem.model, newItem.model); }
@Override public boolean areItemsTheSame(int oldItemPosition, int newItemPosition) { final ViewItem oldItem = oldList.get(oldItemPosition); final ViewItem newItem = newList.get(newItemPosition); // noinspection unchecked return oldItem.viewType == newItem.viewType && mapViewTypeToItemComparator .get(oldItem.viewType) .areItemsTheSame(oldItem.model, newItem.model); }
@Override public boolean areContentsTheSame(int oldItemPosition, int newItemPosition) { final ViewItem oldItem = oldItems.get(oldItemPosition); final ViewItem newItem = newItems.get(newItemPosition); return childDiffUtilComparators.get(oldItem.viewType).areContentsTheSame(oldItem.model, newItem.model); }
@Override public boolean areItemsTheSame(int oldItemPosition, int newItemPosition) { final ViewItem oldItem = oldItems.get(oldItemPosition); final ViewItem newItem = newItems.get(newItemPosition); return oldItem.viewType == newItem.viewType && childDiffUtilComparators.get(oldItem.viewType).areItemsTheSame(oldItem.model, newItem.model); }
@Nullable @Override public Object getChangePayload(int oldItemPosition, int newItemPosition) { final ViewItem oldItem = oldList.get(oldItemPosition); final ViewItem newItem = newList.get(newItemPosition); // noinspection unchecked return mapViewTypeToItemComparator .get(oldItem.viewType) .getChangePayload(oldItem.model, newItem.model); } }
Object changePayload = target.createDiffUtilComparator().getChangePayload(viewItems, newViewItems);
Object changePayload = target.createDiffUtilComparator().getChangePayload(viewItems, newViewItems);
Object changePayload = target.createDiffUtilComparator().getChangePayload(viewItems, newViewItems);