abstract class EpoxyModelPreloader<T : EpoxyModel<*>, U : ViewMetadata?, P : PreloadRequestHolder>
Describes how view content for an EpoxyModel should be preloaded.
T - The type of EpoxyModel that this preloader applies to
U - The type of view metadata to provide to the request builder.
P - The type of PreloadRequestHolder that will execute the preload request
EpoxyModelPreloader(modelType: Class<T>, preloadableViewIds: List<Int>)
Describes how view content for an EpoxyModel should be preloaded. |
val modelType: Class<T> |
|
val preloadableViewIds: List<Int>
A list of view ids, one for each view that should be preloaded. This should be left empty if the EpoxyModel's type uses the Preloadable interface. |
abstract fun buildViewMetadata(view: View): U
Provide optional metadata about a view. This can be used in EpoxyModelPreloader.buildRequest |
|
abstract fun startPreload(epoxyModel: T, preloadTarget: P, viewData: ViewData<U>): Unit
Start a preload request with the given target. |
|
open fun viewSignature(epoxyModel: T): Any?
An optional signature to differentiate views within the same model. This is useful if your EpoxyModel can contain varying amounts of preloadable views, or preloadable views of varying sizes. |
fun <T : EpoxyModel<*>, P : PreloadRequestHolder> with(preloadableViewIds: List<Int> = emptyList(), doPreload: (epoxyModel: T, preloadTarget: P, viewData: ViewData<ViewMetadata?>) -> Unit): EpoxyModelPreloader<T, ViewMetadata?, P>fun <T : EpoxyModel<*>, U : ViewMetadata?, P : PreloadRequestHolder> with(preloadableViewIds: List<Int> = emptyList(), viewMetadata: (View) -> U, viewSignature: (T) -> Any? = { _ -> null }, doPreload: (epoxyModel: T, preloadTarget: P, viewData: ViewData<U>) -> Unit): EpoxyModelPreloader<T, U, P>
Helper to create a EpoxyModelPreloader. fun <T : EpoxyModel<*>, U : ViewMetadata?, P : PreloadRequestHolder> with(preloadableViewIds: List<Int> = emptyList(), epoxyModelClass: Class<T>, viewMetadata: (View) -> U, viewSignature: (T) -> Any? = { _ -> null }, doPreload: (epoxyModel: T, preloadTarget: P, viewData: ViewData<U>) -> Unit): EpoxyModelPreloader<T, U, P>
Helper to create a EpoxyModelPreloader. This is similar to the other helper methods but not inlined so it can be used with Java. |