override fun generateFor()

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))
    }
  }