IviDataSourceWrapper

class IviDataSourceWrapper<E : Any, Q : Any>(wrapped: IviDataSource<E, Q>) : IviDataSource<E, Q>

Wraps an IviDataSource to keep track of its active IviPagingSources to be able to invalidate them when markAsUnavailable is called.

Constructors

Link copied to clipboard
fun <E : Any, Q : Any> IviDataSourceWrapper(wrapped: IviDataSource<E, Q>)

Inherited properties

Link copied to clipboard
open override val jumpingSupported: Boolean

true if this IviDataSource supports jumping, false otherwise.

Link copied to clipboard
open override val keyReuseSupported: Boolean

true if IviPagingSource created by createPagingSource or createPagingSourceFlow expects to re-use keys to load distinct pages without a call to invalidate, false otherwise. See PagingSource.keyReuseSupported for details.

Functions

Link copied to clipboard
open override fun createPagingSource(query: Q, lifecycleOwner: LifecycleOwner): IviPagingSource<E>

Creates an IviPagingSource for the given query. The page source is invalidated when the given lifecycleOwner is destroyed.

Link copied to clipboard
open override fun createPagingSourceFlow(query: Q): Flow<IviPagingSource<E>>

Same as createPagingSource except that this variant returns a Flow. The benefit of this variant is that it does not require a LifecycleOwner as we can use the Flow cancellation to invalidate the IviPagingSource. This variant is ideal for creating a Flow/LiveData transformation.

Link copied to clipboard
fun markAsUnavailable()