fork of https://github.com/sourcegraph/zoekt
0

Configure Feed

Select the types of activity you want to include in your feed.

1package com.airbnb.epoxy.preload 2// ^^^ reference com/ 3// ^^^^^^ reference com/airbnb/ 4// ^^^^^ reference com/airbnb/epoxy/ 5// ^^^^^^^ reference com/airbnb/epoxy/preload/ 6 7import android.content.Context 8import android.view.View 9import android.widget.ImageView 10import androidx.annotation.IdRes 11// ^^^^^^^^ reference androidx/ 12// ^^^^^^^^^^ reference androidx/annotation/ 13// ^^^^^ reference androidx/annotation/IdRes# 14import androidx.annotation.Px 15// ^^^^^^^^ reference androidx/ 16// ^^^^^^^^^^ reference androidx/annotation/ 17// ^^ reference androidx/annotation/Px# 18import androidx.recyclerview.widget.LinearLayoutManager 19// ^^^^^^^^ reference androidx/ 20import androidx.recyclerview.widget.RecyclerView 21// ^^^^^^^^ reference androidx/ 22import com.airbnb.epoxy.BaseEpoxyAdapter 23// ^^^ reference com/ 24// ^^^^^^ reference com/airbnb/ 25// ^^^^^ reference com/airbnb/epoxy/ 26import com.airbnb.epoxy.EpoxyAdapter 27// ^^^ reference com/ 28// ^^^^^^ reference com/airbnb/ 29// ^^^^^ reference com/airbnb/epoxy/ 30import com.airbnb.epoxy.EpoxyController 31// ^^^ reference com/ 32// ^^^^^^ reference com/airbnb/ 33// ^^^^^ reference com/airbnb/epoxy/ 34import com.airbnb.epoxy.EpoxyModel 35// ^^^ reference com/ 36// ^^^^^^ reference com/airbnb/ 37// ^^^^^ reference com/airbnb/epoxy/ 38import com.airbnb.epoxy.getModelForPositionInternal 39// ^^^ reference com/ 40// ^^^^^^ reference com/airbnb/ 41// ^^^^^ reference com/airbnb/epoxy/ 42// ^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/InternalExposerKt#getModelForPositionInternal(). 43import kotlin.math.max 44// ^^^^^^ reference kotlin/ 45// ^^^^ reference kotlin/math/ 46import kotlin.math.min 47// ^^^^^^ reference kotlin/ 48// ^^^^ reference kotlin/math/ 49 50/** 51 * A scroll listener that prefetches view content. 52 * 53 * To use this, create implementations of [EpoxyModelPreloader] for each EpoxyModel class that you want to preload. 54 * Then, use the [EpoxyPreloader.with] methods to create an instance that preloads models of that type. 55 * Finally, add the resulting scroll listener to your RecyclerView. 56 * 57 * If you are using [com.airbnb.epoxy.EpoxyRecyclerView] then use [com.airbnb.epoxy.EpoxyRecyclerView.addPreloader] 58 * to setup the preloader as a listener. 59 * 60 * Otherwise there is a [RecyclerView.addEpoxyPreloader] extension for easy usage. 61 */ 62class EpoxyPreloader<P : PreloadRequestHolder> private constructor( 63// ^^^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyPreloader# public final class EpoxyPreloader<P : com.airbnb.epoxy.preload.PreloadRequestHolder> 64// ^ definition com/airbnb/epoxy/preload/EpoxyPreloader#[P] <P : com.airbnb.epoxy.preload.PreloadRequestHolder> 65// ^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/PreloadRequestHolder# 66// ^^^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyPreloader#`<init>`(). private constructor EpoxyPreloader<P : com.airbnb.epoxy.preload.PreloadRequestHolder>(adapter: [ERROR : BaseEpoxyAdapter], preloadTargetFactory: () -> P, errorHandler: com.airbnb.epoxy.preload.PreloadErrorHandler /* = ([ERROR : Context], kotlin.RuntimeException /* = java.lang.RuntimeException */) -> kotlin.Unit */, maxItemsToPreload: kotlin.Int, modelPreloaders: kotlin.collections.List<com.airbnb.epoxy.preload.EpoxyModelPreloader<*, *, out P>>) 67 private val adapter: BaseEpoxyAdapter, 68// ^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyPreloader#adapter. private final val adapter: [ERROR : BaseEpoxyAdapter] 69// ^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyPreloader#getAdapter(). private final val adapter: [ERROR : BaseEpoxyAdapter] 70// ^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyPreloader#`<init>`().(adapter) value-parameter adapter: [ERROR : BaseEpoxyAdapter] 71 preloadTargetFactory: () -> P, 72// ^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyPreloader#`<init>`().(preloadTargetFactory) value-parameter preloadTargetFactory: () -> P 73// ^ reference com/airbnb/epoxy/preload/EpoxyPreloader#[P] 74 errorHandler: PreloadErrorHandler, 75// ^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyPreloader#`<init>`().(errorHandler) value-parameter errorHandler: com.airbnb.epoxy.preload.PreloadErrorHandler /* = ([ERROR : Context], kotlin.RuntimeException /* = java.lang.RuntimeException */) -> kotlin.Unit */ 76// ^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/PreloadErrorHandler# 77 private val maxItemsToPreload: Int, 78// ^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyPreloader#maxItemsToPreload. private final val maxItemsToPreload: kotlin.Int 79// ^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyPreloader#getMaxItemsToPreload(). private final val maxItemsToPreload: kotlin.Int 80// ^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyPreloader#`<init>`().(maxItemsToPreload) value-parameter maxItemsToPreload: kotlin.Int 81// ^^^ reference kotlin/Int# 82 modelPreloaders: List<EpoxyModelPreloader<*, *, out P>> 83// ^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyPreloader#`<init>`().(modelPreloaders) value-parameter modelPreloaders: kotlin.collections.List<com.airbnb.epoxy.preload.EpoxyModelPreloader<*, *, out P>> 84// ^^^^ reference kotlin/collections/List# 85// ^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyModelPreloader# 86// ^ reference com/airbnb/epoxy/preload/EpoxyPreloader#[P] 87) : RecyclerView.OnScrollListener() { 88 89 private var lastVisibleRange: IntRange = IntRange.EMPTY 90// ^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyPreloader#lastVisibleRange. private final var lastVisibleRange: kotlin.ranges.IntRange 91// ^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyPreloader#getLastVisibleRange(). private final var lastVisibleRange: kotlin.ranges.IntRange 92// ^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyPreloader#setLastVisibleRange(). private final var lastVisibleRange: kotlin.ranges.IntRange 93// ^^^^^^^^ reference kotlin/ranges/IntRange# 94// ^^^^^^^^ reference kotlin/ranges/IntRange#Companion# 95// ^^^^^ reference kotlin/ranges/IntRange#Companion#EMPTY. 96// ^^^^^ reference kotlin/ranges/IntRange#Companion#getEMPTY(). 97 private var lastPreloadRange: IntProgression = IntRange.EMPTY 98// ^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyPreloader#lastPreloadRange. private final var lastPreloadRange: kotlin.ranges.IntProgression 99// ^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyPreloader#getLastPreloadRange(). private final var lastPreloadRange: kotlin.ranges.IntProgression 100// ^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyPreloader#setLastPreloadRange(). private final var lastPreloadRange: kotlin.ranges.IntProgression 101// ^^^^^^^^^^^^^^ reference kotlin/ranges/IntProgression# 102// ^^^^^^^^ reference kotlin/ranges/IntRange#Companion# 103// ^^^^^ reference kotlin/ranges/IntRange#Companion#EMPTY. 104// ^^^^^ reference kotlin/ranges/IntRange#Companion#getEMPTY(). 105 private var totalItemCount = -1 106// ^^^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyPreloader#totalItemCount. private final var totalItemCount: kotlin.Int 107// ^^^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyPreloader#getTotalItemCount(). private final var totalItemCount: kotlin.Int 108// ^^^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyPreloader#setTotalItemCount(). private final var totalItemCount: kotlin.Int 109// ^ reference kotlin/Int#unaryMinus(). 110 private var scrollState: Int = RecyclerView.SCROLL_STATE_IDLE 111// ^^^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyPreloader#scrollState. private final var scrollState: kotlin.Int 112// ^^^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyPreloader#getScrollState(). private final var scrollState: kotlin.Int 113// ^^^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyPreloader#setScrollState(). private final var scrollState: kotlin.Int 114// ^^^ reference kotlin/Int# 115 116 private val modelPreloaders: Map<Class<out EpoxyModel<*>>, EpoxyModelPreloader<*, *, out P>> = 117// ^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyPreloader#modelPreloaders. private final val modelPreloaders: kotlin.collections.Map<java.lang.Class<out [ERROR : EpoxyModel<*>]<out [ERROR : *]>>, com.airbnb.epoxy.preload.EpoxyModelPreloader<*, *, out P>> 118// ^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyPreloader#getModelPreloaders(). private final val modelPreloaders: kotlin.collections.Map<java.lang.Class<out [ERROR : EpoxyModel<*>]<out [ERROR : *]>>, com.airbnb.epoxy.preload.EpoxyModelPreloader<*, *, out P>> 119// ^^^ reference kotlin/collections/Map# 120// ^^^^^ reference java/lang/Class# 121// ^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyModelPreloader# 122// ^ reference com/airbnb/epoxy/preload/EpoxyPreloader#[P] 123 modelPreloaders.associateBy { it.modelType } 124// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#`<init>`().(modelPreloaders) 125// ^^^^^^^^^^^ reference kotlin/collections/CollectionsKt#associateBy(+18). 126// ^^ reference local0 127// ^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyModelPreloader#modelType. 128// ^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyModelPreloader#getModelType(). 129 130 private val requestHolderFactory = 131// ^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyPreloader#requestHolderFactory. private final val requestHolderFactory: com.airbnb.epoxy.preload.PreloadTargetProvider<P> 132// ^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyPreloader#getRequestHolderFactory(). private final val requestHolderFactory: com.airbnb.epoxy.preload.PreloadTargetProvider<P> 133 PreloadTargetProvider(maxItemsToPreload, preloadTargetFactory) 134// ^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/PreloadTargetProvider#`<init>`(). 135// ^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#maxItemsToPreload. 136// ^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#getMaxItemsToPreload(). 137// ^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#`<init>`().(preloadTargetFactory) 138 139 private val viewDataCache = PreloadableViewDataProvider(adapter, errorHandler) 140// ^^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyPreloader#viewDataCache. private final val viewDataCache: com.airbnb.epoxy.preload.PreloadableViewDataProvider 141// ^^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyPreloader#getViewDataCache(). private final val viewDataCache: com.airbnb.epoxy.preload.PreloadableViewDataProvider 142// ^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/PreloadableViewDataProvider#`<init>`(). 143// ^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#adapter. 144// ^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#getAdapter(). 145// ^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#`<init>`().(errorHandler) 146 147 constructor( 148// ^^^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyPreloader#`<init>`(+1). public constructor EpoxyPreloader<P : com.airbnb.epoxy.preload.PreloadRequestHolder>(epoxyController: [ERROR : EpoxyController], requestHolderFactory: () -> P, errorHandler: com.airbnb.epoxy.preload.PreloadErrorHandler /* = ([ERROR : Context], kotlin.RuntimeException /* = java.lang.RuntimeException */) -> kotlin.Unit */, maxItemsToPreload: kotlin.Int, modelPreloaders: kotlin.collections.List<com.airbnb.epoxy.preload.EpoxyModelPreloader<*, *, out P>>) 149 epoxyController: EpoxyController, 150// ^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyPreloader#`<init>`(+1).(epoxyController) value-parameter epoxyController: [ERROR : EpoxyController] 151 requestHolderFactory: () -> P, 152// ^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyPreloader#`<init>`(+1).(requestHolderFactory) value-parameter requestHolderFactory: () -> P 153// ^ reference com/airbnb/epoxy/preload/EpoxyPreloader#[P] 154 errorHandler: PreloadErrorHandler, 155// ^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyPreloader#`<init>`(+1).(errorHandler) value-parameter errorHandler: com.airbnb.epoxy.preload.PreloadErrorHandler /* = ([ERROR : Context], kotlin.RuntimeException /* = java.lang.RuntimeException */) -> kotlin.Unit */ 156// ^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/PreloadErrorHandler# 157 maxItemsToPreload: Int, 158// ^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyPreloader#`<init>`(+1).(maxItemsToPreload) value-parameter maxItemsToPreload: kotlin.Int 159// ^^^ reference kotlin/Int# 160 modelPreloaders: List<EpoxyModelPreloader<*, *, out P>> 161// ^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyPreloader#`<init>`(+1).(modelPreloaders) value-parameter modelPreloaders: kotlin.collections.List<com.airbnb.epoxy.preload.EpoxyModelPreloader<*, *, out P>> 162// ^^^^ reference kotlin/collections/List# 163// ^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyModelPreloader# 164// ^ reference com/airbnb/epoxy/preload/EpoxyPreloader#[P] 165 ) : this( 166 epoxyController.adapter, 167// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#`<init>`(+1).(epoxyController) 168 requestHolderFactory, 169// ^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#`<init>`(+1).(requestHolderFactory) 170 errorHandler, 171// ^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#`<init>`(+1).(errorHandler) 172 maxItemsToPreload, 173// ^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#`<init>`(+1).(maxItemsToPreload) 174 modelPreloaders 175// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#`<init>`(+1).(modelPreloaders) 176 ) 177 178 constructor( 179// ^^^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyPreloader#`<init>`(+2). public constructor EpoxyPreloader<P : com.airbnb.epoxy.preload.PreloadRequestHolder>(adapter: [ERROR : EpoxyAdapter], requestHolderFactory: () -> P, errorHandler: com.airbnb.epoxy.preload.PreloadErrorHandler /* = ([ERROR : Context], kotlin.RuntimeException /* = java.lang.RuntimeException */) -> kotlin.Unit */, maxItemsToPreload: kotlin.Int, modelPreloaders: kotlin.collections.List<com.airbnb.epoxy.preload.EpoxyModelPreloader<*, *, out P>>) 180 adapter: EpoxyAdapter, 181// ^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyPreloader#`<init>`(+2).(adapter) value-parameter adapter: [ERROR : EpoxyAdapter] 182 requestHolderFactory: () -> P, 183// ^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyPreloader#`<init>`(+2).(requestHolderFactory) value-parameter requestHolderFactory: () -> P 184// ^ reference com/airbnb/epoxy/preload/EpoxyPreloader#[P] 185 errorHandler: PreloadErrorHandler, 186// ^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyPreloader#`<init>`(+2).(errorHandler) value-parameter errorHandler: com.airbnb.epoxy.preload.PreloadErrorHandler /* = ([ERROR : Context], kotlin.RuntimeException /* = java.lang.RuntimeException */) -> kotlin.Unit */ 187// ^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/PreloadErrorHandler# 188 maxItemsToPreload: Int, 189// ^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyPreloader#`<init>`(+2).(maxItemsToPreload) value-parameter maxItemsToPreload: kotlin.Int 190// ^^^ reference kotlin/Int# 191 modelPreloaders: List<EpoxyModelPreloader<*, *, out P>> 192// ^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyPreloader#`<init>`(+2).(modelPreloaders) value-parameter modelPreloaders: kotlin.collections.List<com.airbnb.epoxy.preload.EpoxyModelPreloader<*, *, out P>> 193// ^^^^ reference kotlin/collections/List# 194// ^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyModelPreloader# 195// ^ reference com/airbnb/epoxy/preload/EpoxyPreloader#[P] 196 ) : this( 197 adapter as BaseEpoxyAdapter, 198// ^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#`<init>`(+2).(adapter) 199 requestHolderFactory, 200// ^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#`<init>`(+2).(requestHolderFactory) 201 errorHandler, 202// ^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#`<init>`(+2).(errorHandler) 203 maxItemsToPreload, 204// ^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#`<init>`(+2).(maxItemsToPreload) 205 modelPreloaders 206// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#`<init>`(+2).(modelPreloaders) 207 ) 208 209 init { 210 require(maxItemsToPreload > 0) { 211// ^^^^^^^ reference kotlin/PreconditionsKt#require(+1). 212// ^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#maxItemsToPreload. 213// ^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#getMaxItemsToPreload(). 214// ^ reference kotlin/Int#compareTo(+3). 215 "maxItemsToPreload must be greater than 0. Was $maxItemsToPreload" 216// ^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#maxItemsToPreload. 217// ^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#getMaxItemsToPreload(). 218 } 219 } 220 221 override fun onScrollStateChanged(recyclerView: RecyclerView, newState: Int) { 222// ^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyPreloader#onScrollStateChanged(). public open fun onScrollStateChanged(recyclerView: [ERROR : RecyclerView], newState: kotlin.Int) 223// ^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyPreloader#onScrollStateChanged().(recyclerView) value-parameter recyclerView: [ERROR : RecyclerView] 224// ^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyPreloader#onScrollStateChanged().(newState) value-parameter newState: kotlin.Int 225// ^^^ reference kotlin/Int# 226 scrollState = newState 227// ^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#scrollState. 228// ^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#getScrollState(). 229// ^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#setScrollState(). 230// ^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#onScrollStateChanged().(newState) 231 } 232 233 override fun onScrolled(recyclerView: RecyclerView, dx: Int, dy: Int) { 234// ^^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyPreloader#onScrolled(). public open fun onScrolled(recyclerView: [ERROR : RecyclerView], dx: kotlin.Int, dy: kotlin.Int) 235// ^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyPreloader#onScrolled().(recyclerView) value-parameter recyclerView: [ERROR : RecyclerView] 236// ^^ definition com/airbnb/epoxy/preload/EpoxyPreloader#onScrolled().(dx) value-parameter dx: kotlin.Int 237// ^^^ reference kotlin/Int# 238// ^^ definition com/airbnb/epoxy/preload/EpoxyPreloader#onScrolled().(dy) value-parameter dy: kotlin.Int 239// ^^^ reference kotlin/Int# 240 if (dx == 0 && dy == 0) { 241// ^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#onScrolled().(dx) 242// ^^ reference kotlin/Int#equals(). 243// ^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#onScrolled().(dy) 244// ^^ reference kotlin/Int#equals(). 245 // Sometimes flings register a bunch of 0 dx/dy scroll events. To avoid redundant prefetching we just skip these 246 // Additionally, the first RecyclerView layout notifies a scroll of 0, since that can be an important time for 247 // performance (eg page load) we avoid prefetching at the same time. 248 return 249 } 250 251 if (dx.isFling() || dy.isFling()) { 252// ^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#onScrolled().(dx) 253// ^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#isFling(). 254// ^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#onScrolled().(dy) 255// ^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#isFling(). 256 // We avoid preloading during flings for two reasons 257 // 1. Image requests are expensive and we don't want to drop frames on fling 258 // 2. We'll likely scroll past the preloading item anyway 259 return 260 } 261 262 // Update item count before anything else because validations depend on it 263 totalItemCount = recyclerView.adapter?.itemCount ?: 0 264// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#totalItemCount. 265// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#getTotalItemCount(). 266// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#setTotalItemCount(). 267// ^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#onScrolled().(recyclerView) 268 269 val layoutManager = recyclerView.layoutManager as LinearLayoutManager 270// ^^^^^^^^^^^^^ definition local1 val layoutManager: [ERROR : LinearLayoutManager] 271// ^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#onScrolled().(recyclerView) 272 val firstVisiblePosition = layoutManager.findFirstVisibleItemPosition() 273// ^^^^^^^^^^^^^^^^^^^^ definition local2 val firstVisiblePosition: [ERROR : <ERROR FUNCTION RETURN TYPE>] 274// ^^^^^^^^^^^^^ reference local1 275 val lastVisiblePosition = layoutManager.findLastVisibleItemPosition() 276// ^^^^^^^^^^^^^^^^^^^ definition local3 val lastVisiblePosition: [ERROR : <ERROR FUNCTION RETURN TYPE>] 277// ^^^^^^^^^^^^^ reference local1 278 279 if (firstVisiblePosition.isInvalid() || lastVisiblePosition.isInvalid()) { 280// ^^^^^^^^^^^^^^^^^^^^ reference local2 281// ^^^^^^^^^^^^^^^^^^^ reference local3 282 lastVisibleRange = IntRange.EMPTY 283// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#lastVisibleRange. 284// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#getLastVisibleRange(). 285// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#setLastVisibleRange(). 286// ^^^^^^^^ reference kotlin/ranges/IntRange#Companion# 287// ^^^^^ reference kotlin/ranges/IntRange#Companion#EMPTY. 288// ^^^^^ reference kotlin/ranges/IntRange#Companion#getEMPTY(). 289 lastPreloadRange = IntRange.EMPTY 290// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#lastPreloadRange. 291// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#getLastPreloadRange(). 292// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#setLastPreloadRange(). 293// ^^^^^^^^ reference kotlin/ranges/IntRange#Companion# 294// ^^^^^ reference kotlin/ranges/IntRange#Companion#EMPTY. 295// ^^^^^ reference kotlin/ranges/IntRange#Companion#getEMPTY(). 296 return 297 } 298 299 val visibleRange = IntRange(firstVisiblePosition, lastVisiblePosition) 300// ^^^^^^^^^^^^ definition local4 val visibleRange: kotlin.ranges.IntRange 301// ^^^^^^^^ reference kotlin/ranges/IntRange#`<init>`(). 302// ^^^^^^^^^^^^^^^^^^^^ reference local2 303// ^^^^^^^^^^^^^^^^^^^ reference local3 304 if (visibleRange == lastVisibleRange) { 305// ^^^^^^^^^^^^ reference local4 306// ^^ reference kotlin/ranges/IntRange#equals(). 307// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#lastVisibleRange. 308// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#getLastVisibleRange(). 309// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#setLastVisibleRange(). 310 return 311 } 312 313 val isIncreasing = 314// ^^^^^^^^^^^^ definition local5 val isIncreasing: kotlin.Boolean 315 visibleRange.first > lastVisibleRange.first || visibleRange.last > lastVisibleRange.last 316// ^^^^^^^^^^^^ reference local4 317// ^^^^^ reference kotlin/ranges/IntRange#first. 318// ^^^^^ reference kotlin/ranges/IntRange#getFirst(). 319// ^ reference kotlin/Int#compareTo(+3). 320// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#lastVisibleRange. 321// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#getLastVisibleRange(). 322// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#setLastVisibleRange(). 323// ^^^^^ reference kotlin/ranges/IntRange#first. 324// ^^^^^ reference kotlin/ranges/IntRange#getFirst(). 325// ^^^^^^^^^^^^ reference local4 326// ^^^^ reference kotlin/ranges/IntRange#last. 327// ^^^^ reference kotlin/ranges/IntRange#getLast(). 328// ^ reference kotlin/Int#compareTo(+3). 329// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#lastVisibleRange. 330// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#getLastVisibleRange(). 331// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#setLastVisibleRange(). 332// ^^^^ reference kotlin/ranges/IntRange#last. 333// ^^^^ reference kotlin/ranges/IntRange#getLast(). 334 335 val preloadRange = 336// ^^^^^^^^^^^^ definition local6 val preloadRange: kotlin.ranges.IntProgression 337 calculatePreloadRange(firstVisiblePosition, lastVisiblePosition, isIncreasing) 338// ^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#calculatePreloadRange(). 339// ^^^^^^^^^^^^^^^^^^^^ reference local2 340// ^^^^^^^^^^^^^^^^^^^ reference local3 341// ^^^^^^^^^^^^ reference local5 342 343 // Start preload for any items that weren't already preloaded 344 preloadRange 345// ^^^^^^^^^^^^ reference local6 346 .subtract(lastPreloadRange) 347// ^^^^^^^^ reference kotlin/collections/CollectionsKt#subtract(+9). 348// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#lastPreloadRange. 349// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#getLastPreloadRange(). 350// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#setLastPreloadRange(). 351 .forEach { preloadAdapterPosition(it) } 352// ^^^^^^^ reference kotlin/collections/CollectionsKt#forEach(+10). 353// ^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#preloadAdapterPosition(). 354// ^^ reference local7 355 356 lastVisibleRange = visibleRange 357// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#lastVisibleRange. 358// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#getLastVisibleRange(). 359// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#setLastVisibleRange(). 360// ^^^^^^^^^^^^ reference local4 361 lastPreloadRange = preloadRange 362// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#lastPreloadRange. 363// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#getLastPreloadRange(). 364// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#setLastPreloadRange(). 365// ^^^^^^^^^^^^ reference local6 366 } 367 368 /** 369 * @receiver The number of pixels scrolled. 370 * @return True if this distance is large enough to be considered a fast fling. 371 */ 372 private fun Int.isFling() = Math.abs(this) > FLING_THRESHOLD_PX 373// ^^^ reference kotlin/Int# 374// ^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyPreloader#isFling(). private final fun kotlin.Int.isFling(): kotlin.Boolean 375// ^^^^ reference java/lang/Math# 376// ^^^ reference java/lang/Math#abs(). 377// ^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#isFling(). 378// ^ reference kotlin/Int#compareTo(+3). 379// ^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#Companion#FLING_THRESHOLD_PX. 380// ^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#Companion#getFLING_THRESHOLD_PX(). 381 382 private fun calculatePreloadRange( 383// ^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyPreloader#calculatePreloadRange(). private final fun calculatePreloadRange(firstVisiblePosition: kotlin.Int, lastVisiblePosition: kotlin.Int, isIncreasing: kotlin.Boolean): kotlin.ranges.IntProgression 384 firstVisiblePosition: Int, 385// ^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyPreloader#calculatePreloadRange().(firstVisiblePosition) value-parameter firstVisiblePosition: kotlin.Int 386// ^^^ reference kotlin/Int# 387 lastVisiblePosition: Int, 388// ^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyPreloader#calculatePreloadRange().(lastVisiblePosition) value-parameter lastVisiblePosition: kotlin.Int 389// ^^^ reference kotlin/Int# 390 isIncreasing: Boolean 391// ^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyPreloader#calculatePreloadRange().(isIncreasing) value-parameter isIncreasing: kotlin.Boolean 392// ^^^^^^^ reference kotlin/Boolean# 393 ): IntProgression { 394// ^^^^^^^^^^^^^^ reference kotlin/ranges/IntProgression# 395 val from = if (isIncreasing) lastVisiblePosition + 1 else firstVisiblePosition - 1 396// ^^^^ definition local8 val from: kotlin.Int 397// ^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#calculatePreloadRange().(isIncreasing) 398// ^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#calculatePreloadRange().(lastVisiblePosition) 399// ^ reference kotlin/Int#plus(+3). 400// ^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#calculatePreloadRange().(firstVisiblePosition) 401// ^ reference kotlin/Int#minus(+3). 402 val to = from + if (isIncreasing) maxItemsToPreload - 1 else 1 - maxItemsToPreload 403// ^^ definition local9 val to: kotlin.Int 404// ^^^^ reference local8 405// ^ reference kotlin/Int#plus(+3). 406// ^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#calculatePreloadRange().(isIncreasing) 407// ^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#maxItemsToPreload. 408// ^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#getMaxItemsToPreload(). 409// ^ reference kotlin/Int#minus(+3). 410// ^ reference kotlin/Int#minus(+3). 411// ^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#maxItemsToPreload. 412// ^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#getMaxItemsToPreload(). 413 414 return IntProgression.fromClosedRange( 415// ^^^^^^^^^^^^^^ reference kotlin/ranges/IntProgression#Companion# 416// ^^^^^^^^^^^^^^^ reference kotlin/ranges/IntProgression#Companion#fromClosedRange(). 417 rangeStart = from.clampToAdapterRange(), 418// ^^^^^^^^^^ reference kotlin/ranges/IntProgression#Companion#fromClosedRange().(rangeStart) 419// ^^^^ reference local8 420// ^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#clampToAdapterRange(). 421 rangeEnd = to.clampToAdapterRange(), 422// ^^^^^^^^ reference kotlin/ranges/IntProgression#Companion#fromClosedRange().(rangeEnd) 423// ^^ reference local9 424// ^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#clampToAdapterRange(). 425 step = if (isIncreasing) 1 else -1 426// ^^^^ reference kotlin/ranges/IntProgression#Companion#fromClosedRange().(step) 427// ^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#calculatePreloadRange().(isIncreasing) 428// ^ reference kotlin/Int#unaryMinus(). 429 ) 430 } 431 432 /** Check if an item index is valid. It may not be if the adapter is empty, or if adapter changes have been dispatched since the last layout pass. */ 433 private fun Int.isInvalid() = this == RecyclerView.NO_POSITION || this >= totalItemCount 434// ^^^ reference kotlin/Int# 435// ^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyPreloader#isInvalid(). private final fun kotlin.Int.isInvalid(): kotlin.Boolean 436// ^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#isInvalid(). 437// ^^ reference kotlin/Int#equals(). 438// ^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#isInvalid(). 439// ^^ reference kotlin/Int#compareTo(+3). 440// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#totalItemCount. 441// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#getTotalItemCount(). 442// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#setTotalItemCount(). 443 444 private fun Int.clampToAdapterRange() = min(totalItemCount - 1, max(this, 0)) 445// ^^^ reference kotlin/Int# 446// ^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyPreloader#clampToAdapterRange(). private final fun kotlin.Int.clampToAdapterRange(): kotlin.Int 447// ^^^ reference kotlin/math/MathKt#min(+2). 448// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#totalItemCount. 449// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#getTotalItemCount(). 450// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#setTotalItemCount(). 451// ^ reference kotlin/Int#minus(+3). 452// ^^^ reference kotlin/math/MathKt#max(+2). 453// ^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#clampToAdapterRange(). 454 455 private fun preloadAdapterPosition(position: Int) { 456// ^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyPreloader#preloadAdapterPosition(). private final fun preloadAdapterPosition(position: kotlin.Int) 457// ^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyPreloader#preloadAdapterPosition().(position) value-parameter position: kotlin.Int 458// ^^^ reference kotlin/Int# 459 @Suppress("UNCHECKED_CAST") 460// ^^^^^^^^ reference kotlin/Suppress#`<init>`(). 461 val epoxyModel = adapter.getModelForPositionInternal(position) as? EpoxyModel<Any> 462// ^^^^^^^^^^ definition local10 val epoxyModel: kotlin.Nothing 463// ^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#adapter. 464// ^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#getAdapter(). 465// ^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#preloadAdapterPosition().(position) 466// ^^^ reference kotlin/Any# 467 ?: return 468 469 @Suppress("UNCHECKED_CAST") 470// ^^^^^^^^ reference kotlin/Suppress#`<init>`(). 471 val preloader = 472// ^^^^^^^^^ definition local11 val preloader: com.airbnb.epoxy.preload.EpoxyModelPreloader<[ERROR : EpoxyModel<*>]<out [ERROR : *]>, com.airbnb.epoxy.preload.ViewMetadata?, P> 473 modelPreloaders[epoxyModel::class.java] as? EpoxyModelPreloader<EpoxyModel<*>, ViewMetadata?, P> 474// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#modelPreloaders. 475// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#getModelPreloaders(). 476// ^^^^^^^^^^ reference local10 477// ^^^^ reference kotlin/jvm/JvmClassMappingKt#java. 478// ^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyModelPreloader# 479// ^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/ViewMetadata# 480// ^ reference com/airbnb/epoxy/preload/EpoxyPreloader#[P] 481 ?: return 482 483 viewDataCache 484// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#viewDataCache. 485// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#getViewDataCache(). 486 .dataForModel(preloader, epoxyModel, position) 487// ^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/PreloadableViewDataProvider#dataForModel(). 488// ^^^^^^^^^ reference local11 489// ^^^^^^^^^^ reference local10 490// ^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#preloadAdapterPosition().(position) 491 .forEach { viewData -> 492// ^^^^^^^ reference kotlin/collections/CollectionsKt#forEach(+10). 493// ^^^^^^^^ definition local12 value-parameter viewData: com.airbnb.epoxy.preload.ViewData<com.airbnb.epoxy.preload.ViewMetadata?> 494 val preloadTarget = requestHolderFactory.next() 495// ^^^^^^^^^^^^^ definition local13 val preloadTarget: P 496// ^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#requestHolderFactory. 497// ^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#getRequestHolderFactory(). 498// ^^^^ reference com/airbnb/epoxy/preload/PreloadTargetProvider#next(). 499 preloader.startPreload(epoxyModel, preloadTarget, viewData) 500// ^^^^^^^^^ reference local11 501// ^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyModelPreloader#startPreload(). 502// ^^^^^^^^^^ reference local10 503// ^^^^^^^^^^^^^ reference local13 504// ^^^^^^^^ reference local12 505 } 506 } 507 508 /** 509 * Cancels all current preload requests in progress. 510 */ 511 fun cancelPreloadRequests() { 512// ^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyPreloader#cancelPreloadRequests(). public final fun cancelPreloadRequests() 513 requestHolderFactory.clearAll() 514// ^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#requestHolderFactory. 515// ^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#getRequestHolderFactory(). 516// ^^^^^^^^ reference com/airbnb/epoxy/preload/PreloadTargetProvider#clearAll(). 517 } 518 519 companion object { 520// ^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyPreloader#Companion# public companion object 521 522 /** 523 * 524 * Represents a threshold for fast scrolling. 525 * This is a bit arbitrary and was determined by looking at values while flinging vs slow scrolling. 526 * Ideally it would be based on DP, but this is simpler. 527 */ 528 private const val FLING_THRESHOLD_PX = 75 529// ^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyPreloader#Companion#FLING_THRESHOLD_PX. private const final val FLING_THRESHOLD_PX: kotlin.Int 530// ^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyPreloader#Companion#getFLING_THRESHOLD_PX(). private const final val FLING_THRESHOLD_PX: kotlin.Int 531 532 /** 533 * Helper to create a preload scroll listener. Add the result to your RecyclerView. 534 * for different models or content types. 535 * 536 * @param maxItemsToPreload How many items to prefetch ahead of the last bound item 537 * @param errorHandler Called when the preloader encounters an exception. By default this throws only 538 * if the app is not in a debuggle model 539 * @param modelPreloader Describes how view content for the EpoxyModel should be preloaded 540 * @param requestHolderFactory Should create and return a new [PreloadRequestHolder] each time it is invoked 541 */ 542 fun <P : PreloadRequestHolder> with( 543// ^ definition com/airbnb/epoxy/preload/EpoxyPreloader#Companion#with().[P] <P : com.airbnb.epoxy.preload.PreloadRequestHolder> 544// ^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/PreloadRequestHolder# 545// ^^^^ definition com/airbnb/epoxy/preload/EpoxyPreloader#Companion#with(). public final fun <P : com.airbnb.epoxy.preload.PreloadRequestHolder> with(epoxyController: [ERROR : EpoxyController], requestHolderFactory: () -> P, errorHandler: com.airbnb.epoxy.preload.PreloadErrorHandler /* = ([ERROR : Context], kotlin.RuntimeException /* = java.lang.RuntimeException */) -> kotlin.Unit */, maxItemsToPreload: kotlin.Int, modelPreloader: com.airbnb.epoxy.preload.EpoxyModelPreloader<out [ERROR : EpoxyModel<*>]<out [ERROR : *]>, out com.airbnb.epoxy.preload.ViewMetadata?, out P>): com.airbnb.epoxy.preload.EpoxyPreloader<P> 546 epoxyController: EpoxyController, 547// ^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyPreloader#Companion#with().(epoxyController) value-parameter epoxyController: [ERROR : EpoxyController] 548 requestHolderFactory: () -> P, 549// ^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyPreloader#Companion#with().(requestHolderFactory) value-parameter requestHolderFactory: () -> P 550// ^ reference com/airbnb/epoxy/preload/EpoxyPreloader#Companion#with().[P] 551 errorHandler: PreloadErrorHandler, 552// ^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyPreloader#Companion#with().(errorHandler) value-parameter errorHandler: com.airbnb.epoxy.preload.PreloadErrorHandler /* = ([ERROR : Context], kotlin.RuntimeException /* = java.lang.RuntimeException */) -> kotlin.Unit */ 553// ^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/PreloadErrorHandler# 554 maxItemsToPreload: Int, 555// ^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyPreloader#Companion#with().(maxItemsToPreload) value-parameter maxItemsToPreload: kotlin.Int 556// ^^^ reference kotlin/Int# 557 modelPreloader: EpoxyModelPreloader<out EpoxyModel<*>, out ViewMetadata?, out P> 558// ^^^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyPreloader#Companion#with().(modelPreloader) value-parameter modelPreloader: com.airbnb.epoxy.preload.EpoxyModelPreloader<out [ERROR : EpoxyModel<*>]<out [ERROR : *]>, out com.airbnb.epoxy.preload.ViewMetadata?, out P> 559// ^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyModelPreloader# 560// ^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/ViewMetadata# 561// ^ reference com/airbnb/epoxy/preload/EpoxyPreloader#Companion#with().[P] 562 ): EpoxyPreloader<P> = 563// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader# 564// ^ reference com/airbnb/epoxy/preload/EpoxyPreloader#Companion#with().[P] 565 with( 566 epoxyController, 567// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#Companion#with().(epoxyController) 568 requestHolderFactory, 569// ^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#Companion#with().(requestHolderFactory) 570 errorHandler, 571// ^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#Companion#with().(errorHandler) 572 maxItemsToPreload, 573// ^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#Companion#with().(maxItemsToPreload) 574 listOf(modelPreloader) 575// ^^^^^^ reference kotlin/collections/CollectionsKt#listOf(). 576// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#Companion#with().(modelPreloader) 577 ) 578 579 fun <P : PreloadRequestHolder> with( 580// ^ definition com/airbnb/epoxy/preload/EpoxyPreloader#Companion#with(+1).[P] <P : com.airbnb.epoxy.preload.PreloadRequestHolder> 581// ^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/PreloadRequestHolder# 582// ^^^^ definition com/airbnb/epoxy/preload/EpoxyPreloader#Companion#with(+1). public final fun <P : com.airbnb.epoxy.preload.PreloadRequestHolder> with(epoxyController: [ERROR : EpoxyController], requestHolderFactory: () -> P, errorHandler: com.airbnb.epoxy.preload.PreloadErrorHandler /* = ([ERROR : Context], kotlin.RuntimeException /* = java.lang.RuntimeException */) -> kotlin.Unit */, maxItemsToPreload: kotlin.Int, modelPreloaders: kotlin.collections.List<com.airbnb.epoxy.preload.EpoxyModelPreloader<out [ERROR : EpoxyModel<*>]<out [ERROR : *]>, out com.airbnb.epoxy.preload.ViewMetadata?, out P>>): com.airbnb.epoxy.preload.EpoxyPreloader<P> 583 epoxyController: EpoxyController, 584// ^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyPreloader#Companion#with(+1).(epoxyController) value-parameter epoxyController: [ERROR : EpoxyController] 585 requestHolderFactory: () -> P, 586// ^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyPreloader#Companion#with(+1).(requestHolderFactory) value-parameter requestHolderFactory: () -> P 587// ^ reference com/airbnb/epoxy/preload/EpoxyPreloader#Companion#with(+1).[P] 588 errorHandler: PreloadErrorHandler, 589// ^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyPreloader#Companion#with(+1).(errorHandler) value-parameter errorHandler: com.airbnb.epoxy.preload.PreloadErrorHandler /* = ([ERROR : Context], kotlin.RuntimeException /* = java.lang.RuntimeException */) -> kotlin.Unit */ 590// ^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/PreloadErrorHandler# 591 maxItemsToPreload: Int, 592// ^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyPreloader#Companion#with(+1).(maxItemsToPreload) value-parameter maxItemsToPreload: kotlin.Int 593// ^^^ reference kotlin/Int# 594 modelPreloaders: List<EpoxyModelPreloader<out EpoxyModel<*>, out ViewMetadata?, out P>> 595// ^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyPreloader#Companion#with(+1).(modelPreloaders) value-parameter modelPreloaders: kotlin.collections.List<com.airbnb.epoxy.preload.EpoxyModelPreloader<out [ERROR : EpoxyModel<*>]<out [ERROR : *]>, out com.airbnb.epoxy.preload.ViewMetadata?, out P>> 596// ^^^^ reference kotlin/collections/List# 597// ^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyModelPreloader# 598// ^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/ViewMetadata# 599// ^ reference com/airbnb/epoxy/preload/EpoxyPreloader#Companion#with(+1).[P] 600 ): EpoxyPreloader<P> { 601// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader# 602// ^ reference com/airbnb/epoxy/preload/EpoxyPreloader#Companion#with(+1).[P] 603 604 return EpoxyPreloader( 605 epoxyController, 606// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#Companion#with(+1).(epoxyController) 607 requestHolderFactory, 608// ^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#Companion#with(+1).(requestHolderFactory) 609 errorHandler, 610// ^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#Companion#with(+1).(errorHandler) 611 maxItemsToPreload, 612// ^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#Companion#with(+1).(maxItemsToPreload) 613 modelPreloaders 614// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#Companion#with(+1).(modelPreloaders) 615 ) 616 } 617 618 /** Helper to create a preload scroll listener. Add the result to your RecyclerView. */ 619 fun <P : PreloadRequestHolder> with( 620// ^ definition com/airbnb/epoxy/preload/EpoxyPreloader#Companion#with(+2).[P] <P : com.airbnb.epoxy.preload.PreloadRequestHolder> 621// ^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/PreloadRequestHolder# 622// ^^^^ definition com/airbnb/epoxy/preload/EpoxyPreloader#Companion#with(+2). public final fun <P : com.airbnb.epoxy.preload.PreloadRequestHolder> with(epoxyAdapter: [ERROR : EpoxyAdapter], requestHolderFactory: () -> P, errorHandler: com.airbnb.epoxy.preload.PreloadErrorHandler /* = ([ERROR : Context], kotlin.RuntimeException /* = java.lang.RuntimeException */) -> kotlin.Unit */, maxItemsToPreload: kotlin.Int, modelPreloaders: kotlin.collections.List<com.airbnb.epoxy.preload.EpoxyModelPreloader<out [ERROR : EpoxyModel<*>]<out [ERROR : *]>, out com.airbnb.epoxy.preload.ViewMetadata?, out P>>): com.airbnb.epoxy.preload.EpoxyPreloader<P> 623 epoxyAdapter: EpoxyAdapter, 624// ^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyPreloader#Companion#with(+2).(epoxyAdapter) value-parameter epoxyAdapter: [ERROR : EpoxyAdapter] 625 requestHolderFactory: () -> P, 626// ^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyPreloader#Companion#with(+2).(requestHolderFactory) value-parameter requestHolderFactory: () -> P 627// ^ reference com/airbnb/epoxy/preload/EpoxyPreloader#Companion#with(+2).[P] 628 errorHandler: PreloadErrorHandler, 629// ^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyPreloader#Companion#with(+2).(errorHandler) value-parameter errorHandler: com.airbnb.epoxy.preload.PreloadErrorHandler /* = ([ERROR : Context], kotlin.RuntimeException /* = java.lang.RuntimeException */) -> kotlin.Unit */ 630// ^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/PreloadErrorHandler# 631 maxItemsToPreload: Int, 632// ^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyPreloader#Companion#with(+2).(maxItemsToPreload) value-parameter maxItemsToPreload: kotlin.Int 633// ^^^ reference kotlin/Int# 634 modelPreloaders: List<EpoxyModelPreloader<out EpoxyModel<*>, out ViewMetadata?, out P>> 635// ^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyPreloader#Companion#with(+2).(modelPreloaders) value-parameter modelPreloaders: kotlin.collections.List<com.airbnb.epoxy.preload.EpoxyModelPreloader<out [ERROR : EpoxyModel<*>]<out [ERROR : *]>, out com.airbnb.epoxy.preload.ViewMetadata?, out P>> 636// ^^^^ reference kotlin/collections/List# 637// ^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyModelPreloader# 638// ^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/ViewMetadata# 639// ^ reference com/airbnb/epoxy/preload/EpoxyPreloader#Companion#with(+2).[P] 640 ): EpoxyPreloader<P> { 641// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader# 642// ^ reference com/airbnb/epoxy/preload/EpoxyPreloader#Companion#with(+2).[P] 643 644 return EpoxyPreloader( 645 epoxyAdapter, 646// ^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#Companion#with(+2).(epoxyAdapter) 647 requestHolderFactory, 648// ^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#Companion#with(+2).(requestHolderFactory) 649 errorHandler, 650// ^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#Companion#with(+2).(errorHandler) 651 maxItemsToPreload, 652// ^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#Companion#with(+2).(maxItemsToPreload) 653 modelPreloaders 654// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#Companion#with(+2).(modelPreloaders) 655 ) 656 } 657 } 658} 659 660class EpoxyPreloadException(errorMessage: String) : RuntimeException(errorMessage) 661// ^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyPreloadException# public final class EpoxyPreloadException : kotlin.RuntimeException /* = java.lang.RuntimeException */ 662// ^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyPreloadException#`<init>`(). public constructor EpoxyPreloadException(errorMessage: kotlin.String) 663// ^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyPreloadException#`<init>`().(errorMessage) value-parameter errorMessage: kotlin.String 664// ^^^^^^ reference kotlin/String# 665// ^^^^^^^^^^^^^^^^ reference kotlin/RuntimeException#`<init>`(+1). 666// ^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloadException#`<init>`().(errorMessage) 667 668typealias PreloadErrorHandler = (Context, RuntimeException) -> Unit 669// ^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/PreloadErrorHandler# public typealias PreloadErrorHandler = ([ERROR : Context], kotlin.RuntimeException) -> kotlin.Unit 670// ^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyPreloaderKt#`<no name provided>`. val <no name provided>: kotlin.RuntimeException 671// ^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyPreloaderKt#`<no name provided>`. val <no name provided>: kotlin.RuntimeException 672// ^^^^^^^^^^^^^^^^ reference kotlin/RuntimeException# 673// ^^^^ reference kotlin/Unit# 674 675/** 676 * Data about an image view to be preloaded. This data is used to construct a Glide image request. 677 * 678 * @param metadata Any custom, additional data that the [EpoxyModelPreloader] chooses to provide that may be necessary to create the image request. 679 */ 680class ViewData<out U : ViewMetadata?>( 681// ^^^^^^^^ definition com/airbnb/epoxy/preload/ViewData# public final class ViewData<out U : com.airbnb.epoxy.preload.ViewMetadata?> 682// ^^^^^^^^ definition com/airbnb/epoxy/preload/ViewData#`<init>`(). public constructor ViewData<out U : com.airbnb.epoxy.preload.ViewMetadata?>(viewId: kotlin.Int, width: kotlin.Int, height: kotlin.Int, metadata: U) 683// ^ definition com/airbnb/epoxy/preload/ViewData#[U] <out U : com.airbnb.epoxy.preload.ViewMetadata?> 684// ^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/ViewMetadata# 685 @IdRes val viewId: Int, 686// ^^^^^ reference androidx/annotation/IdRes#`<init>`(). 687// ^^^^^^ definition com/airbnb/epoxy/preload/ViewData#viewId. public final val viewId: kotlin.Int 688// ^^^^^^ definition com/airbnb/epoxy/preload/ViewData#getViewId(). public final val viewId: kotlin.Int 689// ^^^^^^ definition com/airbnb/epoxy/preload/ViewData#`<init>`().(viewId) value-parameter viewId: kotlin.Int 690// ^^^ reference kotlin/Int# 691 @Px val width: Int, 692// ^^ reference androidx/annotation/Px#`<init>`(). 693// ^^^^^ definition com/airbnb/epoxy/preload/ViewData#width. public final val width: kotlin.Int 694// ^^^^^ definition com/airbnb/epoxy/preload/ViewData#getWidth(). public final val width: kotlin.Int 695// ^^^^^ definition com/airbnb/epoxy/preload/ViewData#`<init>`().(width) value-parameter width: kotlin.Int 696// ^^^ reference kotlin/Int# 697 @Px val height: Int, 698// ^^ reference androidx/annotation/Px#`<init>`(). 699// ^^^^^^ definition com/airbnb/epoxy/preload/ViewData#height. public final val height: kotlin.Int 700// ^^^^^^ definition com/airbnb/epoxy/preload/ViewData#getHeight(). public final val height: kotlin.Int 701// ^^^^^^ definition com/airbnb/epoxy/preload/ViewData#`<init>`().(height) value-parameter height: kotlin.Int 702// ^^^ reference kotlin/Int# 703 val metadata: U 704// ^^^^^^^^ definition com/airbnb/epoxy/preload/ViewData#metadata. public final val metadata: U 705// ^^^^^^^^ definition com/airbnb/epoxy/preload/ViewData#getMetadata(). public final val metadata: U 706// ^^^^^^^^ definition com/airbnb/epoxy/preload/ViewData#`<init>`().(metadata) value-parameter metadata: U 707// ^ reference com/airbnb/epoxy/preload/ViewData#[U] 708) 709 710interface ViewMetadata { 711// ^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/ViewMetadata# public interface ViewMetadata 712 companion object { 713// ^^^^^^^^^ definition com/airbnb/epoxy/preload/ViewMetadata#Companion# public companion object 714 fun getDefault(view: View): ViewMetadata? { 715// ^^^^^^^^^^ definition com/airbnb/epoxy/preload/ViewMetadata#Companion#getDefault(). public final fun getDefault(view: [ERROR : View]): com.airbnb.epoxy.preload.ViewMetadata? 716// ^^^^ definition com/airbnb/epoxy/preload/ViewMetadata#Companion#getDefault().(view) value-parameter view: [ERROR : View] 717// ^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/ViewMetadata# 718 return when (view) { 719// ^^^^ reference com/airbnb/epoxy/preload/ViewMetadata#Companion#getDefault().(view) 720 is ImageView -> ImageViewMetadata(view.scaleType) 721// ^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/ImageViewMetadata#`<init>`(). 722// ^^^^ reference com/airbnb/epoxy/preload/ViewMetadata#Companion#getDefault().(view) 723 else -> null 724 } 725 } 726 } 727} 728 729/** 730 * Default implementation of [ViewMetadata] for an ImageView. 731 * This data can help the preload request know how to configure itself. 732 */ 733open class ImageViewMetadata( 734// ^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/ImageViewMetadata# public open class ImageViewMetadata : com.airbnb.epoxy.preload.ViewMetadata 735// ^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/ImageViewMetadata#`<init>`(). public constructor ImageViewMetadata(scaleType: [ERROR : ImageView.ScaleType]) 736 val scaleType: ImageView.ScaleType 737// ^^^^^^^^^ definition com/airbnb/epoxy/preload/ImageViewMetadata#scaleType. public final val scaleType: [ERROR : ImageView.ScaleType] 738// ^^^^^^^^^ definition com/airbnb/epoxy/preload/ImageViewMetadata#getScaleType(). public final val scaleType: [ERROR : ImageView.ScaleType] 739// ^^^^^^^^^ definition com/airbnb/epoxy/preload/ImageViewMetadata#`<init>`().(scaleType) value-parameter scaleType: [ERROR : ImageView.ScaleType] 740) : ViewMetadata 741// ^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/ViewMetadata#