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

Configure Feed

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

ranking: boost Kotlin matches based on symbol kind (#422)

same as #421, but for Kotlin.

+819 -1
+63 -1
build/e2e_test.go
··· 799 799 }, 800 800 } 801 801 802 - exampleJava, err := os.ReadFile("./test_data/example.java") 802 + exampleJava, err := os.ReadFile("./testdata/example.java") 803 + if err != nil { 804 + t.Fatal(err) 805 + } 806 + 807 + exampleKotlin, err := os.ReadFile("./testdata/example.kt") 803 808 if err != nil { 804 809 t.Fatal(err) 805 810 } ··· 811 816 wantLanguage string 812 817 wantScore float64 813 818 }{ 819 + // 820 + // Kotlin 821 + // 822 + { 823 + fileName: "example.kt", 824 + content: exampleKotlin, 825 + query: &query.Substring{Content: true, Pattern: "oxyPreloader"}, 826 + wantLanguage: "Kotlin", 827 + // 5500 (partial symbol at boundary) + 1000 (Kotlin class) + 50 (partial word) + 400 (atom) + 10 (file order) 828 + wantScore: 6960, 829 + }, 830 + { 831 + fileName: "example.kt", 832 + content: exampleKotlin, 833 + query: &query.Substring{Content: true, Pattern: "ViewMetadata"}, 834 + wantLanguage: "Kotlin", 835 + // 7000 (symbol) + 900 (Kotlin interface) + 500 (word) + 400 (atom) + 10 (file order) 836 + wantScore: 8810, 837 + }, 838 + { 839 + fileName: "example.kt", 840 + content: exampleKotlin, 841 + query: &query.Substring{Content: true, Pattern: "onScrolled"}, 842 + wantLanguage: "Kotlin", 843 + // 7000 (symbol) + 800 (Kotlin method) + 500 (word) + 400 (atom) + 10 (file order) 844 + wantScore: 8710, 845 + }, 846 + { 847 + fileName: "example.kt", 848 + content: exampleKotlin, 849 + query: &query.Substring{Content: true, Pattern: "PreloadErrorHandler"}, 850 + wantLanguage: "Kotlin", 851 + // 7000 (symbol) + 700 (Kotlin typealias) + 500 (word) + 400 (atom) + 10 (file order) 852 + wantScore: 8610, 853 + }, 854 + { 855 + fileName: "example.kt", 856 + content: exampleKotlin, 857 + query: &query.Substring{Content: true, Pattern: "FLING_THRESHOLD_PX"}, 858 + wantLanguage: "Kotlin", 859 + // 7000 (symbol) + 600 (Kotlin constant) + 500 (word) + 400 (atom) + 10 (file order) 860 + wantScore: 8510, 861 + }, 862 + { 863 + fileName: "example.kt", 864 + content: exampleKotlin, 865 + query: &query.Substring{Content: true, Pattern: "scrollState"}, 866 + wantLanguage: "Kotlin", 867 + // 7000 (symbol) + 500 (Kotlin variable) + 500 (word) + 400 (atom) + 10 (file order) 868 + wantScore: 8410, 869 + }, 870 + // 871 + // Java 872 + // 814 873 { 815 874 fileName: "example.java", 816 875 content: exampleJava, ··· 859 918 // 7000 (symbol) + 500 (Java enum constant) + 500 (word) + 400 (atom) + 10 (file order) 860 919 wantScore: 8410, 861 920 }, 921 + // 922 + // Go 923 + // 862 924 { 863 925 fileName: "a/b/c/config.go", 864 926 query: &query.Substring{FileName: true, Pattern: "config"},
build/test_data/example.java build/testdata/example.java
+741
build/testdata/example.kt
··· 1 + package com.airbnb.epoxy.preload 2 + // ^^^ reference com/ 3 + // ^^^^^^ reference com/airbnb/ 4 + // ^^^^^ reference com/airbnb/epoxy/ 5 + // ^^^^^^^ reference com/airbnb/epoxy/preload/ 6 + 7 + import android.content.Context 8 + import android.view.View 9 + import android.widget.ImageView 10 + import androidx.annotation.IdRes 11 + // ^^^^^^^^ reference androidx/ 12 + // ^^^^^^^^^^ reference androidx/annotation/ 13 + // ^^^^^ reference androidx/annotation/IdRes# 14 + import androidx.annotation.Px 15 + // ^^^^^^^^ reference androidx/ 16 + // ^^^^^^^^^^ reference androidx/annotation/ 17 + // ^^ reference androidx/annotation/Px# 18 + import androidx.recyclerview.widget.LinearLayoutManager 19 + // ^^^^^^^^ reference androidx/ 20 + import androidx.recyclerview.widget.RecyclerView 21 + // ^^^^^^^^ reference androidx/ 22 + import com.airbnb.epoxy.BaseEpoxyAdapter 23 + // ^^^ reference com/ 24 + // ^^^^^^ reference com/airbnb/ 25 + // ^^^^^ reference com/airbnb/epoxy/ 26 + import com.airbnb.epoxy.EpoxyAdapter 27 + // ^^^ reference com/ 28 + // ^^^^^^ reference com/airbnb/ 29 + // ^^^^^ reference com/airbnb/epoxy/ 30 + import com.airbnb.epoxy.EpoxyController 31 + // ^^^ reference com/ 32 + // ^^^^^^ reference com/airbnb/ 33 + // ^^^^^ reference com/airbnb/epoxy/ 34 + import com.airbnb.epoxy.EpoxyModel 35 + // ^^^ reference com/ 36 + // ^^^^^^ reference com/airbnb/ 37 + // ^^^^^ reference com/airbnb/epoxy/ 38 + import com.airbnb.epoxy.getModelForPositionInternal 39 + // ^^^ reference com/ 40 + // ^^^^^^ reference com/airbnb/ 41 + // ^^^^^ reference com/airbnb/epoxy/ 42 + // ^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/InternalExposerKt#getModelForPositionInternal(). 43 + import kotlin.math.max 44 + // ^^^^^^ reference kotlin/ 45 + // ^^^^ reference kotlin/math/ 46 + import 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 + */ 62 + class 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 + 660 + class 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 + 668 + typealias 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 + */ 680 + class 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 + 710 + interface 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 + */ 733 + open 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#
+15
contentprovider.go
··· 666 666 case "enumConstant": 667 667 factor = 5 668 668 } 669 + case "Kotlin": 670 + switch kind { 671 + case "class": 672 + factor = 10 673 + case "interface": 674 + factor = 9 675 + case "method": 676 + factor = 8 677 + case "typealias": 678 + factor = 7 679 + case "constant": 680 + factor = 6 681 + case "variable": 682 + factor = 5 683 + } 669 684 } 670 685 return factor * scoreKindMatch 671 686 }