in buildSrc/artist-traits-rx/src/main/kotlin/com/uber/artist/traits/rx/KotlinScrollableTrait.kt [27:56]
override fun generateFor(
type: TypeSpec.Builder,
initMethod: FunSpec.Builder,
rClass: ClassName,
sourceType: String) {
// ScrollView overrides
if (sourceType.contains("ScrollView")) {
addRxBindingApiForSettable(type, KotlinSettableApi(
KotlinRxBindingInfo(KotlinRxTypeNames.Rx.RxNestedScrollView,
"scrollChangeEvents",
"""@return an observable of scroll-change events for this NestedScrollView.
"""),
ClassName.bestGuess("androidx.core.widget.NestedScrollView.OnScrollChangeListener"),
"setOnScrollChangeListener",
KotlinRxTypeNames.Rx.ViewScrollChangeEvent,
FunSpec.builder("accept")
.addParameter("event", KotlinRxTypeNames.Rx.ViewScrollChangeEvent)
.addStatement("l.onScrollChange(this@$sourceType, event.scrollX, event.scrollY, event.oldScrollX, event.oldScrollY)")))
}
// RecyclerView overrides
if (sourceType.contains("RecyclerView")) {
addRxBindingApiForAdditive(type, KotlinAdditiveApi(
KotlinRxBindingInfo(KotlinRxTypeNames.Rx.RxRecyclerView,
"scrollEvents",
"@return an observable of scroll events on this RecyclerView"),
KotlinRxTypeNames.Rx.RecyclerViewScrollEvent))
}
}