1 package com.airbnb.lottie.samples.utils 2 3 import android.os.Bundle 4 import android.view.View 5 import com.airbnb.epoxy.AsyncEpoxyController 6 import com.airbnb.epoxy.EpoxyController 7 import com.airbnb.lottie.samples.R 8 import com.airbnb.lottie.samples.databinding.BaseFragmentBinding 9 import com.airbnb.mvrx.BaseMvRxFragment 10 11 12 private class BaseEpoxyController( 13 private val buildModelsCallback: EpoxyController.() -> Unit 14 ) : AsyncEpoxyController() { buildModelsnull15 override fun buildModels() { 16 buildModelsCallback() 17 } 18 } 19 20 abstract class BaseEpoxyFragment : BaseMvRxFragment(R.layout.base_fragment) { 21 protected val binding: BaseFragmentBinding by viewBinding() 22 onViewCreatednull23 override fun onViewCreated(view: View, savedInstanceState: Bundle?) { 24 binding.recyclerView.setController(BaseEpoxyController { buildModels() }) 25 } 26 invalidatenull27 override fun invalidate() { 28 binding.recyclerView.requestModelBuild() 29 } 30 buildModelsnull31 abstract fun EpoxyController.buildModels() 32 }