Epoxy Controller
A controller for easily combining EpoxyModel instances in a RecyclerView.Adapter. Simply implement buildModels to declare which models should be used, and in which order. Call requestModelBuild whenever your data changes, and the controller will call buildModels, update the adapter with the new models, and notify any changes between the new and old models.
The controller maintains a androidx.recyclerview.widget.RecyclerView.Adapter with the latest models, which you can get via getAdapter to set on your RecyclerView.
All data change notifications are applied automatically via Epoxy's diffing algorithm. All of your models must have a unique id set on them for diffing to work. You may choose to use annotations to have the controller create models with unique ids for you automatically.
Once a model is created and added to the controller in buildModels it should be treated as immutable and never modified again. This is necessary for adapter updates to be accurate.