public class BatchingListUpdateCallback extends Object implements ListUpdateCallback
ListUpdateCallback
callback and batches operations that can be merged.
For instance, when 2 add operations comes that adds 2 consecutive elements, BatchingListUpdateCallback merges them and calls the wrapped callback only once.
This is a general purpose class and is also used by
DiffResult
and
SortedList
to minimize the number of updates that are dispatched.
If you use this class to batch updates, you must call dispatchLastEvent()
when the
stream of update events drain.
Constructor and Description |
---|
BatchingListUpdateCallback(ListUpdateCallback callback) |
Modifier and Type | Method and Description |
---|---|
void |
dispatchLastEvent()
BatchingListUpdateCallback holds onto the last event to see if it can be merged with the
next one.
|
void |
onChanged(int position,
int count,
Object payload)
Called when
count number of items are updated at the given position. |
void |
onInserted(int position,
int count)
Called when
count number of items are inserted at the given position. |
void |
onMoved(int fromPosition,
int toPosition)
Called when an item changes its position in the list.
|
void |
onRemoved(int position,
int count)
Called when
count number of items are removed from the given position. |
public BatchingListUpdateCallback(ListUpdateCallback callback)
public void dispatchLastEvent()
public void onInserted(int position, int count)
ListUpdateCallback
count
number of items are inserted at the given position.onInserted
in interface ListUpdateCallback
position
- The position of the new item.count
- The number of items that have been added.public void onRemoved(int position, int count)
ListUpdateCallback
count
number of items are removed from the given position.onRemoved
in interface ListUpdateCallback
position
- The position of the item which has been removed.count
- The number of items which have been removed.public void onMoved(int fromPosition, int toPosition)
ListUpdateCallback
onMoved
in interface ListUpdateCallback
fromPosition
- The previous position of the item before the move.toPosition
- The new position of the item.public void onChanged(int position, int count, Object payload)
ListUpdateCallback
count
number of items are updated at the given position.onChanged
in interface ListUpdateCallback
position
- The position of the item which has been updated.count
- The number of items which has changed.