BatchingListUpdateCallback


class BatchingListUpdateCallback : ListUpdateCallback


Wraps a 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.

Summary

Public constructors

Public functions

Unit

BatchingListUpdateCallback holds onto the last event to see if it can be merged with the next one.

Unit
onChanged(position: Int, count: Int, payload: Any!)

Called when count} number of items are updated at the given position.

Unit
onInserted(position: Int, count: Int)

Called when count} number of items are inserted at the given position.

Unit
onMoved(fromPosition: Int, toPosition: Int)

Called when an item changes its position in the list.

Unit
onRemoved(position: Int, count: Int)

Called when count} number of items are removed from the given position.

Public constructors

BatchingListUpdateCallback

Added in 1.0.0
BatchingListUpdateCallback(callback: ListUpdateCallback)

Public functions

dispatchLastEvent

Added in 1.0.0
fun dispatchLastEvent(): Unit

BatchingListUpdateCallback holds onto the last event to see if it can be merged with the next one. When stream of events finish, you should call this method to dispatch the last event.

onChanged

Added in 1.4.0-rc01
fun onChanged(position: Int, count: Int, payload: Any!): Unit

Called when count} number of items are updated at the given position.

onInserted

Added in 1.4.0-rc01
fun onInserted(position: Int, count: Int): Unit

Called when count} number of items are inserted at the given position.

onMoved

Added in 1.4.0-rc01
fun onMoved(fromPosition: Int, toPosition: Int): Unit

Called when an item changes its position in the list.

onRemoved

Added in 1.4.0-rc01
fun onRemoved(position: Int, count: Int): Unit

Called when count} number of items are removed from the given position.