blob: 1c18749122b0c7715bba77340274e730f679cd92 [file] [log] [blame]
package com.airbnb.lottie.samples
import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import com.airbnb.epoxy.AsyncEpoxyController
import com.airbnb.epoxy.EpoxyController
import com.airbnb.lottie.samples.R.id.recyclerView
import com.airbnb.mvrx.BaseMvRxFragment
import kotlinx.android.synthetic.main.fragment_base.*
import kotlinx.android.synthetic.main.fragment_base.view.*
private class BaseEpoxyController(
private val buildModelsCallback: EpoxyController.() -> Unit
) : AsyncEpoxyController() {
override fun buildModels() {
buildModelsCallback()
}
}
abstract class BaseEpoxyFragment : BaseMvRxFragment() {
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? =
inflater.inflate(R.layout.fragment_base, container, false).apply {
recyclerView.setController(BaseEpoxyController { buildModels() })
}
override fun invalidate() {
recyclerView.requestModelBuild()
}
abstract fun EpoxyController.buildModels()
}