@NonNull NewTransactionModel.Item newItem) {
// Logger.debug("new-trans",
-// String.format("comparing contents of {%s} and {%s}", oldItem.toString(),
+// String.format("comparing contents of {%s} and {%s}", oldItem
+// .toString(),
// newItem.toString()));
return oldItem.equalContents(newItem);
}
@NonNull RecyclerView.ViewHolder target) {
final int adapterPosition = target.getAdapterPosition();
- // first and last items are immovable
+ // first item is immovable
if (adapterPosition == 0)
return false;
- if (adapterPosition == adapter.getItemCount() - 1)
- return false;
return super.canDropOver(recyclerView, current, target);
}
int flags = makeFlag(ItemTouchHelper.ACTION_STATE_IDLE, ItemTouchHelper.END);
// the top (date and description) and the bottom (padding) items are always there
final int adapterPosition = viewHolder.getAdapterPosition();
- if ((adapterPosition > 0) && (adapterPosition < adapter.getItemCount() - 1)) {
+ if (adapterPosition > 0) {
flags |= makeFlag(ItemTouchHelper.ACTION_STATE_DRAG,
ItemTouchHelper.UP | ItemTouchHelper.DOWN) |
makeFlag(ItemTouchHelper.ACTION_STATE_SWIPE,
NewTransactionRowBinding.inflate(LayoutInflater.from(parent.getContext()), parent,
false);
- return new NewTransactionItemHolder(b, this);
+ final NewTransactionItemHolder newHolder = new NewTransactionItemHolder(b, this);
+ Logger.debug("new-trans",
+ "Creating new ViewHolder " + Integer.toHexString(newHolder.hashCode()));
+ return newHolder;
}
@Override
public void onBindViewHolder(@NonNull NewTransactionItemHolder holder, int position) {
- Logger.debug("bind", String.format(Locale.US, "Binding item at position %d", position));
+ Logger.debug("bind",
+ String.format(Locale.US, "Binding item at position %d, holder %s", position,
+ Integer.toHexString(holder.hashCode())));
NewTransactionModel.Item item = Objects.requireNonNull(differ.getCurrentList()
.get(position));
holder.bind(item);