gitextract_6mir2ezo/ ├── .github/ │ └── workflows/ │ └── build_test.yml ├── .gitignore ├── .idea/ │ └── codeStyleSettings.xml ├── CHANGELOG.md ├── CONTRIBUTING.MD ├── LICENSE ├── README.md ├── RELEASING.md ├── UpdateProcessorTestResources.kt ├── blessedDeps.gradle ├── build.gradle ├── epoxy-adapter/ │ ├── .gitignore │ ├── build.gradle │ ├── gradle.properties │ ├── lint.xml │ ├── proguard-rules.pro │ └── src/ │ ├── main/ │ │ ├── AndroidManifest.xml │ │ ├── java/ │ │ │ └── com/ │ │ │ └── airbnb/ │ │ │ └── epoxy/ │ │ │ ├── ActivityRecyclerPool.kt │ │ │ ├── AsyncEpoxyController.java │ │ │ ├── AsyncEpoxyDiffer.java │ │ │ ├── BaseEpoxyAdapter.java │ │ │ ├── BaseEpoxyTouchCallback.java │ │ │ ├── BoundViewHolders.java │ │ │ ├── Carousel.java │ │ │ ├── ControllerHelper.java │ │ │ ├── ControllerHelperLookup.java │ │ │ ├── ControllerModelList.java │ │ │ ├── DebugTimer.java │ │ │ ├── DiffHelper.java │ │ │ ├── DiffPayload.java │ │ │ ├── DiffResult.java │ │ │ ├── EpoxyAdapter.java │ │ │ ├── EpoxyAsyncUtil.java │ │ │ ├── EpoxyController.java │ │ │ ├── EpoxyControllerAdapter.java │ │ │ ├── EpoxyDiffLogger.java │ │ │ ├── EpoxyDragCallback.java │ │ │ ├── EpoxyHolder.java │ │ │ ├── EpoxyItemSpacingDecorator.java │ │ │ ├── EpoxyModel.java │ │ │ ├── EpoxyModelGroup.java │ │ │ ├── EpoxyModelTouchCallback.java │ │ │ ├── EpoxyModelWithHolder.java │ │ │ ├── EpoxyModelWithView.java │ │ │ ├── EpoxyRecyclerView.kt │ │ │ ├── EpoxySwipeCallback.java │ │ │ ├── EpoxyTouchHelper.java │ │ │ ├── EpoxyTouchHelperCallback.kt │ │ │ ├── EpoxyViewHolder.java │ │ │ ├── EpoxyVisibilityItem.kt │ │ │ ├── EpoxyVisibilityTracker.kt │ │ │ ├── GeneratedModel.java │ │ │ ├── GroupModel.kt │ │ │ ├── HandlerExecutor.java │ │ │ ├── HiddenEpoxyModel.java │ │ │ ├── IdUtils.java │ │ │ ├── IllegalEpoxyUsage.java │ │ │ ├── ImmutableModelException.java │ │ │ ├── InternalExposer.kt │ │ │ ├── ListenersUtils.java │ │ │ ├── MainThreadExecutor.java │ │ │ ├── ModelCollector.kt │ │ │ ├── ModelGroupHolder.kt │ │ │ ├── ModelList.java │ │ │ ├── ModelState.java │ │ │ ├── NoOpControllerHelper.java │ │ │ ├── NoOpTimer.java │ │ │ ├── NotifyBlocker.java │ │ │ ├── OnModelBoundListener.java │ │ │ ├── OnModelBuildFinishedListener.java │ │ │ ├── OnModelCheckedChangeListener.java │ │ │ ├── OnModelClickListener.java │ │ │ ├── OnModelLongClickListener.java │ │ │ ├── OnModelUnboundListener.java │ │ │ ├── OnModelVisibilityChangedListener.java │ │ │ ├── OnModelVisibilityStateChangedListener.java │ │ │ ├── QuantityStringResAttribute.java │ │ │ ├── SimpleEpoxyAdapter.java │ │ │ ├── SimpleEpoxyController.java │ │ │ ├── SimpleEpoxyModel.java │ │ │ ├── StringAttributeData.java │ │ │ ├── StyleBuilderCallback.java │ │ │ ├── Timer.java │ │ │ ├── Typed2EpoxyController.java │ │ │ ├── Typed3EpoxyController.java │ │ │ ├── Typed4EpoxyController.java │ │ │ ├── TypedEpoxyController.java │ │ │ ├── UnboundedViewPool.kt │ │ │ ├── UpdateOp.java │ │ │ ├── UpdateOpHelper.java │ │ │ ├── ViewHolderState.java │ │ │ ├── ViewTypeManager.java │ │ │ ├── VisibilityState.java │ │ │ ├── WrappedEpoxyModelCheckedChangeListener.java │ │ │ ├── WrappedEpoxyModelClickListener.kt │ │ │ ├── preload/ │ │ │ │ ├── EpoxyModelPreloader.kt │ │ │ │ ├── EpoxyPreloader.kt │ │ │ │ ├── PreloadTargetProvider.kt │ │ │ │ ├── Preloadable.kt │ │ │ │ ├── PreloadableViewDataProvider.kt │ │ │ │ └── PreloaderExtensions.kt │ │ │ ├── stickyheader/ │ │ │ │ ├── StickyHeaderCallbacks.kt │ │ │ │ └── StickyHeaderLinearLayoutManager.kt │ │ │ └── utils/ │ │ │ └── utils.kt │ │ └── res/ │ │ ├── layout/ │ │ │ └── view_holder_empty_view.xml │ │ └── values/ │ │ ├── attrs.xml │ │ └── ids.xml │ └── test/ │ └── java/ │ └── com/ │ └── airbnb/ │ └── epoxy/ │ ├── DiffPayloadTest.java │ ├── DifferCorrectnessTest.java │ ├── DifferNotifyTest.java │ ├── EpoxyAdapterTest.java │ ├── EpoxyControllerTest.java │ ├── EpoxyModelGroupTest.kt │ ├── EpoxyRecyclerViewTest.kt │ ├── EpoxyViewHolderTest.kt │ ├── EpoxyVisibilityTrackerNestedTest.kt │ ├── EpoxyVisibilityTrackerTest.kt │ ├── InsertedModel.java │ ├── ModelListTest.java │ ├── ModelTestUtils.java │ ├── TestAdapter.java │ ├── TestModel.java │ ├── TestObserver.java │ ├── TypedEpoxyControllerTest.java │ ├── UnboundedViewPoolTests.kt │ ├── UpdateOpHelperTest.java │ ├── ViewTypeManagerIntegrationTest.java │ └── test/ │ └── CarouselTest.java ├── epoxy-annotations/ │ ├── .gitignore │ ├── build.gradle │ ├── gradle.properties │ └── src/ │ └── main/ │ └── java/ │ └── com/ │ └── airbnb/ │ └── epoxy/ │ ├── AfterPropsSet.java │ ├── AutoModel.java │ ├── CallbackProp.java │ ├── EpoxyAttribute.java │ ├── EpoxyBuildScope.kt │ ├── EpoxyDataBindingLayouts.java │ ├── EpoxyDataBindingPattern.java │ ├── EpoxyModelClass.java │ ├── ModelProp.java │ ├── ModelView.java │ ├── OnViewRecycled.java │ ├── OnVisibilityChanged.java │ ├── OnVisibilityStateChanged.java │ ├── PackageEpoxyConfig.java │ ├── PackageModelViewConfig.java │ └── TextProp.java ├── epoxy-compose/ │ ├── .gitignore │ ├── build.gradle │ ├── consumer-rules.pro │ ├── gradle.properties │ ├── proguard-rules.pro │ └── src/ │ └── main/ │ ├── AndroidManifest.xml │ └── java/ │ └── com/ │ └── airbnb/ │ └── epoxy/ │ └── ComposeInterop.kt ├── epoxy-composeinterop-maverickssample/ │ ├── .gitignore │ ├── build.gradle │ ├── proguard-rules.pro │ └── src/ │ ├── androidTest/ │ │ └── java/ │ │ └── com/ │ │ └── airbnb/ │ │ └── epoxy/ │ │ └── composeinterop/ │ │ └── maverickssample/ │ │ └── MultiKeyComposeInteropFragmentTest.kt │ └── main/ │ ├── AndroidManifest.xml │ ├── java/ │ │ └── com/ │ │ └── airbnb/ │ │ └── epoxy/ │ │ └── composeinterop/ │ │ └── maverickssample/ │ │ ├── ComposeInteropListFragmnet.kt │ │ ├── MainActivity.kt │ │ ├── MultiKeyComposeInteropFragment.kt │ │ ├── SampleApplication.kt │ │ └── epoxyviews/ │ │ └── HeaderView.kt │ └── res/ │ ├── drawable/ │ │ └── ic_launcher_background.xml │ ├── drawable-v24/ │ │ └── ic_launcher_foreground.xml │ ├── layout/ │ │ ├── activity_main.xml │ │ ├── fragment_multi_key_compose_interop.xml │ │ ├── fragment_my.xml │ │ └── header_view.xml │ ├── mipmap-anydpi-v26/ │ │ ├── ic_launcher.xml │ │ └── ic_launcher_round.xml │ ├── values/ │ │ ├── colors.xml │ │ ├── strings.xml │ │ └── themes.xml │ └── values-night/ │ └── themes.xml ├── epoxy-composesample/ │ ├── .gitignore │ ├── build.gradle │ ├── proguard-rules.pro │ └── src/ │ └── main/ │ ├── AndroidManifest.xml │ ├── java/ │ │ └── com/ │ │ └── airbnb/ │ │ └── epoxy/ │ │ └── compose/ │ │ └── sample/ │ │ ├── ComposableInteropActivity.kt │ │ ├── EpoxyInteropActivity.kt │ │ ├── MainActivity.kt │ │ ├── epoxyviews/ │ │ │ └── HeaderView.kt │ │ └── ui/ │ │ └── theme/ │ │ ├── Color.kt │ │ ├── Shape.kt │ │ ├── Theme.kt │ │ └── Type.kt │ └── res/ │ ├── drawable/ │ │ └── ic_launcher_background.xml │ ├── drawable-v24/ │ │ └── ic_launcher_foreground.xml │ ├── layout/ │ │ ├── activity_composable_interop.xml │ │ ├── activity_epoxy_interop.xml │ │ ├── activity_main.xml │ │ └── header_view.xml │ ├── mipmap-anydpi-v26/ │ │ ├── ic_launcher.xml │ │ └── ic_launcher_round.xml │ ├── values/ │ │ ├── colors.xml │ │ ├── strings.xml │ │ └── themes.xml │ └── values-night/ │ └── themes.xml ├── epoxy-databinding/ │ ├── .gitignore │ ├── build.gradle │ ├── gradle.properties │ ├── proguard-rules.pro │ └── src/ │ └── main/ │ ├── AndroidManifest.xml │ └── java/ │ └── com/ │ └── airbnb/ │ └── epoxy/ │ └── DataBindingEpoxyModel.java ├── epoxy-glide-preloader/ │ ├── .gitignore │ ├── build.gradle │ ├── gradle.properties │ └── src/ │ ├── androidTest/ │ │ └── java/ │ │ └── com/ │ │ └── airbnb/ │ │ └── epoxy/ │ │ └── preloader/ │ │ └── ExampleInstrumentedTest.java │ └── main/ │ ├── AndroidManifest.xml │ └── java/ │ └── com/ │ └── airbnb/ │ └── epoxy/ │ ├── GlidePreloadExtensions.kt │ └── GlidePreloadRequestHolder.kt ├── epoxy-integrationtest/ │ ├── .gitignore │ ├── build.gradle │ ├── proguard-rules.pro │ └── src/ │ ├── main/ │ │ ├── AndroidManifest.xml │ │ ├── java/ │ │ │ └── com/ │ │ │ └── airbnb/ │ │ │ └── epoxy/ │ │ │ └── integrationtest/ │ │ │ ├── AdapterWithFieldAssigned.java │ │ │ ├── AdapterWithIdChanged.java │ │ │ ├── BasicAutoModelsAdapter.java │ │ │ ├── ControllerWithAutoModel.java │ │ │ ├── ControllerWithoutImplicityAdding.java │ │ │ ├── EpoxyDataBindingConfig.java │ │ │ ├── KotlinViewWithDefaultParams.kt │ │ │ ├── Model.java │ │ │ ├── ModelChangesDuringBind.java │ │ │ ├── ModelGroupWithAnnotation.java │ │ │ ├── ModelWithCheckedChangeListener.java │ │ │ ├── ModelWithClickListener.java │ │ │ ├── ModelWithConstructors.java │ │ │ ├── ModelWithLongClickListener.java │ │ │ ├── ModelWithNoGeneratedClass.java │ │ │ ├── ModelsWithCustomTypes.java │ │ │ ├── TestActivity.kt │ │ │ ├── ViewWithAnnotationsForIntegrationTest.java │ │ │ ├── ViewWithDelegate.kt │ │ │ ├── ViewWithInterface.kt │ │ │ └── autoaddautomodels/ │ │ │ ├── ControllerWithImplicitlyAddedModels.java │ │ │ ├── ControllerWithImplicitlyAddedModels2.java │ │ │ ├── ControllerWithImplicitlyAddedModels3.java │ │ │ └── PackageConfig.java │ │ └── res/ │ │ ├── layout/ │ │ │ ├── model_with_checked_change.xml │ │ │ ├── model_with_click_listener.xml │ │ │ ├── model_with_data_binding.xml │ │ │ ├── vertical_linear_group.xml │ │ │ ├── view_holder_databinding_test.xml │ │ │ ├── view_holder_nested_databinding_test.xml │ │ │ ├── view_holder_no_databinding.xml │ │ │ └── view_with_annotations_for_integration_test.xml │ │ └── values/ │ │ ├── plurals.xml │ │ └── strings.xml │ └── test/ │ └── java/ │ └── com/ │ └── airbnb/ │ └── epoxy/ │ ├── AutoModelIntegrationTest.java │ ├── BindDiffTest.kt │ ├── BindModelIntegrationTest.java │ ├── ControllerLifecycleHelper.kt │ ├── DataBindingModelIntegrationTest.java │ ├── DiffPayloadTestUtil.java │ ├── EpoxyAdapterIntegrationTest.java │ ├── EpoxyModelGroupRecyclingTest.kt │ ├── EpoxyModelIntegrationTest.java │ ├── EpoxyModelValidationTest.java │ ├── EpoxyViewBinderIntegrationTest.kt │ ├── EpoxyViewBinderVisibilityTrackerTest.kt │ ├── EpoxyVisibilityItemTest.kt │ ├── EpoxyVisibilityTrackerModelGroupTest.kt │ ├── KotlinDefaultParamTest.kt │ ├── ModelBuilderExtensionIntegrationTest.kt │ ├── ModelClickListenerTest.java │ ├── ModelGroupIntegrationTest.kt │ ├── ModelViewDelegateTest.kt │ ├── ModelViewInterfaceTest.kt │ ├── OnModelBindListenerTest.java │ ├── ViewAnnotationsStringOverloadsIntegrationTest.java │ ├── models/ │ │ ├── TrackerTestModel.kt │ │ └── TrackerTestModelGroup.kt │ └── utils/ │ └── VisibilityAssertHelper.kt ├── epoxy-kspsample/ │ ├── .gitignore │ ├── build.gradle │ └── src/ │ └── main/ │ ├── AndroidManifest.xml │ ├── java/ │ │ └── com/ │ │ └── airbnb/ │ │ └── epoxy/ │ │ └── ksp/ │ │ └── sample/ │ │ ├── MainActivity.kt │ │ └── epoxyviews/ │ │ ├── EpoxyConfig.kt │ │ └── HeaderView.kt │ └── res/ │ ├── layout/ │ │ ├── activity_main.xml │ │ └── header_view.xml │ └── values/ │ └── strings.xml ├── epoxy-modelfactory/ │ ├── .gitignore │ ├── build.gradle │ ├── gradle.properties │ └── src/ │ └── main/ │ ├── AndroidManifest.xml │ └── java/ │ └── com/ │ └── airbnb/ │ └── epoxy/ │ └── ModelProperties.java ├── epoxy-modelfactorytest/ │ ├── .gitignore │ ├── build.gradle │ └── src/ │ ├── main/ │ │ ├── AndroidManifest.xml │ │ ├── java/ │ │ │ └── com/ │ │ │ └── airbnb/ │ │ │ └── epoxy/ │ │ │ ├── TestModelPropertiesKotlinView.kt │ │ │ └── TestModelPropertiesView.java │ │ └── res/ │ │ └── values/ │ │ └── strings.xml │ └── test/ │ ├── java/ │ │ └── com/ │ │ └── airbnb/ │ │ └── epoxy/ │ │ ├── FromModelPropertiesKotlinTest.kt │ │ ├── FromModelPropertiesTest.kt │ │ ├── ModelFactoryViewProcessorTest.kt │ │ ├── ParisConfig.kt │ │ └── ProcessorTestUtils.kt │ └── resources/ │ ├── AllTypesModelView.java │ ├── AllTypesModelViewModel_.java │ ├── BasicModelWithFinalAttribute.java │ ├── BasicModelWithFinalAttribute_.java │ ├── CallbackPropModelView.java │ ├── CallbackPropModelViewModel_.java │ ├── GroupPropMultipleSupportedAttributeDifferentNameModelView.java │ ├── GroupPropMultipleSupportedAttributeDifferentNameModelViewModel_.java │ ├── GroupPropMultipleSupportedAttributeSameNameModelView.java │ ├── GroupPropMultipleSupportedAttributeSameNameModelViewModel_.java │ ├── GroupPropSingleSupportedAttributeModelView.java │ ├── GroupPropSingleSupportedAttributeModelViewModel_.java │ ├── ListSubtypeModelView.java │ ├── ListSubtypeModelViewModel_.java │ ├── ModelFactoryBaseModelView.java │ ├── ModelFactoryBaseModelViewModel_.java │ ├── ModelFactoryBasicModelWithAttribute.java │ ├── ModelFactoryBasicModelWithAttribute_.java │ ├── StyleableModelView.java │ ├── StyleableModelViewModel_.java │ ├── TextPropModelView.java │ ├── TextPropModelViewModel_.java │ ├── ksp/ │ │ ├── AllTypesModelViewModel_.java │ │ ├── BasicModelWithFinalAttribute_.java │ │ ├── CallbackPropModelViewModel_.java │ │ ├── GroupPropMultipleSupportedAttributeDifferentNameModelViewModel_.java │ │ ├── GroupPropMultipleSupportedAttributeSameNameModelViewModel_.java │ │ ├── GroupPropSingleSupportedAttributeModelViewModel_.java │ │ ├── ListSubtypeModelViewModel_.java │ │ ├── ModelFactoryBaseModelViewModel_.java │ │ ├── ModelFactoryBasicModelWithAttribute_.java │ │ └── TextPropModelViewModel_.java │ └── test.json ├── epoxy-paging3/ │ ├── .gitignore │ ├── build.gradle │ ├── gradle.properties │ ├── proguard-rules.pro │ └── src/ │ ├── androidTest/ │ │ └── java/ │ │ └── com/ │ │ └── airbnb/ │ │ └── epoxy/ │ │ └── paging3/ │ │ ├── Item.kt │ │ ├── ListDataSource.kt │ │ └── PagedListModelCacheTest.kt │ ├── main/ │ │ ├── AndroidManifest.xml │ │ └── java/ │ │ └── com/ │ │ └── airbnb/ │ │ └── epoxy/ │ │ └── paging3/ │ │ ├── PagedDataModelCache.kt │ │ ├── PagedListEpoxyController.kt │ │ ├── PagedListModelCache.kt │ │ └── PagingDataEpoxyController.kt │ └── test/ │ └── java/ │ └── com/ │ └── airbnb/ │ └── epoxy/ │ └── paging3/ │ ├── DummyItem.kt │ ├── ListPagingSource.kt │ └── PagedDataModelCacheTest.kt ├── epoxy-preloadersample/ │ ├── .gitignore │ ├── build.gradle │ ├── gradle.properties │ └── src/ │ └── main/ │ ├── AndroidManifest.xml │ ├── java/ │ │ └── com/ │ │ └── airbnb/ │ │ └── epoxy/ │ │ └── preloadersample/ │ │ ├── ImageModel.kt │ │ ├── ImagesController.kt │ │ ├── KotlinHolder.kt │ │ ├── MainActivity.kt │ │ ├── NoPreloadActivity.kt │ │ └── PreloadActivity.kt │ └── res/ │ ├── drawable/ │ │ └── ic_launcher_background.xml │ ├── layout/ │ │ ├── activity_main.xml │ │ ├── list_activity.xml │ │ └── list_item.xml │ └── values/ │ ├── colors.xml │ ├── strings.xml │ └── styles.xml ├── epoxy-processor/ │ ├── .gitignore │ ├── build.gradle │ ├── gradle.properties │ └── src/ │ ├── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── airbnb/ │ │ │ └── epoxy/ │ │ │ └── processor/ │ │ │ ├── Asyncable.kt │ │ │ ├── AttributeInfo.kt │ │ │ ├── BaseModelAttributeInfo.kt │ │ │ ├── BaseProcessor.kt │ │ │ ├── BaseProcessorWithPackageConfigs.kt │ │ │ ├── BasicGeneratedModelInfo.kt │ │ │ ├── ClassNames.kt │ │ │ ├── ConfigManager.kt │ │ │ ├── ControllerClassInfo.kt │ │ │ ├── ControllerModelField.kt │ │ │ ├── ControllerProcessor.kt │ │ │ ├── DataBindingAttributeInfo.kt │ │ │ ├── DataBindingModelInfo.kt │ │ │ ├── DataBindingModuleLookup.kt │ │ │ ├── DataBindingProcessor.kt │ │ │ ├── EpoxyProcessor.kt │ │ │ ├── EpoxyProcessorException.kt │ │ │ ├── Extensions.kt │ │ │ ├── GeneratedModelInfo.kt │ │ │ ├── GeneratedModelWriter.kt │ │ │ ├── GroupedAttribute.kt │ │ │ ├── HashCodeValidator.kt │ │ │ ├── ImportScanner.java │ │ │ ├── JavaPoetDsl.kt │ │ │ ├── KClassNames.kt │ │ │ ├── KotlinModelBuilderExtensionWriter.kt │ │ │ ├── KotlinUtils.kt │ │ │ ├── Logger.kt │ │ │ ├── Memoizer.kt │ │ │ ├── MethodInfo.kt │ │ │ ├── ModelBuilderInterfaceWriter.kt │ │ │ ├── ModelViewInfo.kt │ │ │ ├── ModelViewProcessor.kt │ │ │ ├── ModelViewWriter.kt │ │ │ ├── MultiParamAttribute.kt │ │ │ ├── PackageConfigSettings.kt │ │ │ ├── PackageModelViewSettings.kt │ │ │ ├── ParisStyleAttributeInfo.kt │ │ │ ├── PoetExtensions.kt │ │ │ ├── StringOverloadWriter.kt │ │ │ ├── StyleWriter.kt │ │ │ ├── Synchronization.kt │ │ │ ├── Timer.kt │ │ │ ├── Type.kt │ │ │ ├── TypeNameWorkaround.kt │ │ │ ├── Utils.kt │ │ │ ├── ViewAttributeInfo.kt │ │ │ ├── XProcessingUtils.kt │ │ │ └── resourcescanning/ │ │ │ ├── JavacResourceScanner.kt │ │ │ ├── KspResourceScanner.kt │ │ │ ├── ResourceScanner.kt │ │ │ └── ResourceValue.kt │ │ └── resources/ │ │ └── META-INF/ │ │ └── services/ │ │ ├── com.google.devtools.ksp.processing.SymbolProcessorProvider │ │ └── javax.annotation.processing.Processor │ └── test/ │ └── java/ │ └── com/ │ └── airbnb/ │ └── epoxy/ │ ├── KspResourceScannerTest.kt │ ├── PoetExtensionsTest.kt │ └── UtilsTests.kt ├── epoxy-processortest/ │ ├── .gitignore │ ├── build.gradle │ └── src/ │ ├── main/ │ │ ├── AndroidManifest.xml │ │ ├── java/ │ │ │ └── com/ │ │ │ └── airbnb/ │ │ │ └── integrationtest/ │ │ │ └── processortest/ │ │ │ ├── ProcessorTestModel.java │ │ │ └── differentpackage/ │ │ │ └── Model.java │ │ └── res/ │ │ ├── layout/ │ │ │ └── model_with_data_binding_without_donothash.xml │ │ └── values/ │ │ └── strings.xml │ └── test/ │ ├── java/ │ │ └── com/ │ │ └── airbnb/ │ │ └── epoxy/ │ │ ├── ConfigTest.kt │ │ ├── ControllerProcessorTest.kt │ │ ├── DataBindingModelTest.kt │ │ ├── EpoxyResourceProcessorTest.kt │ │ ├── GuavaPatch.kt │ │ ├── ModelProcessorTest.kt │ │ ├── ProcessorTestUtils.kt │ │ ├── ViewProcessorTest.kt │ │ └── testpackage/ │ │ └── DifferentPackageTest.java │ └── resources/ │ ├── AbstractEpoxyModelWithView.java │ ├── AbstractEpoxyModelWithView_.java │ ├── AbstractModelWithHolder.java │ ├── AbstractModelWithHolder_.java │ ├── AutoLayoutModelView.java │ ├── AutoLayoutModelViewManualLayoutParams.java │ ├── AutoLayoutModelViewManualLayoutParamsModel_.java │ ├── AutoLayoutModelViewMatchParent.java │ ├── AutoLayoutModelViewMatchParentModel_.java │ ├── AutoLayoutModelViewModel_.java │ ├── AutoModelNotInAutoAdapter.java │ ├── AutoModelNotOnModelField.java │ ├── BaseModelView.java │ ├── BaseModelViewModel_.java │ ├── BasicModelWithAttribute.java │ ├── BasicModelWithAttribute_.java │ ├── ControllerProcessorTest/ │ │ └── controllerWithAutoModel/ │ │ ├── BasicModelWithAttribute.kt │ │ ├── ControllerWithAutoModel.kt │ │ ├── ControllerWithAutoModel_EpoxyHelper.java │ │ └── ksp/ │ │ └── ControllerWithAutoModel_EpoxyHelper.java │ ├── ControllerWithAutoModel.java │ ├── ControllerWithAutoModelAndImplicitAdding.java │ ├── ControllerWithAutoModelAndImplicitAdding_EpoxyHelper.java │ ├── ControllerWithAutoModelWithSuperClass$SubControllerWithAutoModelWithSuperClass_EpoxyHelper.java │ ├── ControllerWithAutoModelWithSuperClass.java │ ├── ControllerWithAutoModelWithSuperClass_EpoxyHelper.java │ ├── ControllerWithAutoModelWithoutValidation.java │ ├── ControllerWithAutoModelWithoutValidation_EpoxyHelper.java │ ├── ControllerWithAutoModel_EpoxyHelper.java │ ├── CustomPackageLayoutPatternViewModel_.java │ ├── DataBindingConfig.java │ ├── DataBindingModelWithAllFieldTypes.java │ ├── DataBindingModelWithAllFieldTypesNoValidation.java │ ├── DataBindingModelWithAllFieldTypesNoValidation_.java │ ├── DataBindingModelWithAllFieldTypes_.java │ ├── DefaultPackageLayoutPatternViewModel_.java │ ├── DoNotHashView.java │ ├── DoNotHashViewModel_.java │ ├── EpoxyModelGroupWithAnnotations.java │ ├── EpoxyModelGroupWithAnnotations_.java │ ├── GenerateDefaultLayoutMethod.java │ ├── GenerateDefaultLayoutMethodNextParentLayout$NoLayout_.java │ ├── GenerateDefaultLayoutMethodNextParentLayout$StillNoLayout_.java │ ├── GenerateDefaultLayoutMethodNextParentLayout$WithLayout_.java │ ├── GenerateDefaultLayoutMethodNextParentLayout.java │ ├── GenerateDefaultLayoutMethodNoLayout.java │ ├── GenerateDefaultLayoutMethodParentLayout$NoLayout_.java │ ├── GenerateDefaultLayoutMethodParentLayout$WithLayout_.java │ ├── GenerateDefaultLayoutMethodParentLayout.java │ ├── GenerateDefaultLayoutMethodParentStillNoLayout.java │ ├── GenerateDefaultLayoutMethod_.java │ ├── GeneratedModelSuffixViewSuffix_.java │ ├── GridSpanCountView.java │ ├── GridSpanCountViewModel_.java │ ├── IgnoreRequireHashCodeView.java │ ├── IgnoreRequireHashCodeViewModel_.java │ ├── LayoutOverloadsViewModel_.java │ ├── ModelAsInnerClass.java │ ├── ModelConfigRequireHashCodeAllowsMarkedAttributes.java │ ├── ModelConfigRequireHashCodeCharSequencePasses.java │ ├── ModelConfigRequireHashCodeInterfaceWithHashCodePasses.java │ ├── ModelConfigSubPackageOverridesParent.java │ ├── ModelDoNotHash.java │ ├── ModelDoNotHash_.java │ ├── ModelDoNotUseInToString.java │ ├── ModelDoNotUseInToString_.java │ ├── ModelForRProcessingTest.java │ ├── ModelForRProcessingTest_.java │ ├── ModelForTestingDuplicateRValues.java │ ├── ModelForTestingDuplicateRValues_.java │ ├── ModelNoValidation.java │ ├── ModelNoValidation_.java │ ├── ModelPackageWithNoConfigInheritsNearestParentConfig.java │ ├── ModelProcessorTest/ │ │ └── testKotlinModel/ │ │ ├── Model.kt │ │ ├── Model_.java │ │ └── ksp/ │ │ └── Model_.java │ ├── ModelRequiresEqualsFailsBasicObject.java │ ├── ModelRequiresHashCodeArrayFails.java │ ├── ModelRequiresHashCodeArraySucceeds.java │ ├── ModelRequiresHashCodeAutoValueClassPasses.java │ ├── ModelRequiresHashCodeEnumPasses.java │ ├── ModelRequiresHashCodeFailsBasicObject.java │ ├── ModelRequiresHashCodeIterableFails.java │ ├── ModelRequiresHashCodeIterableSucceeds.java │ ├── ModelReturningClassType.java │ ├── ModelReturningClassTypeWithVarargs.java │ ├── ModelReturningClassTypeWithVarargs_.java │ ├── ModelReturningClassType_.java │ ├── ModelViewExtendingSuperClass.java │ ├── ModelViewExtendingSuperClassModel_.java │ ├── ModelViewSuperClass.java │ ├── ModelViewSuperClassModel_.java │ ├── ModelViewWithParis.java │ ├── ModelViewWithParisModel_.java │ ├── ModelWithAbstractClass.java │ ├── ModelWithAbstractClassAndAnnotation.java │ ├── ModelWithAbstractClassAndAnnotation_.java │ ├── ModelWithAllFieldTypes.java │ ├── ModelWithAllFieldTypesBuilder.java │ ├── ModelWithAllFieldTypes_.java │ ├── ModelWithAllPrivateFieldTypes.java │ ├── ModelWithAllPrivateFieldTypes_.java │ ├── ModelWithAnnotatedClass.java │ ├── ModelWithAnnotatedClassAndSuperAttributes$SubModelWithAnnotatedClassAndSuperAttributes_.java │ ├── ModelWithAnnotatedClassAndSuperAttributes.java │ ├── ModelWithAnnotatedClassAndSuperAttributes_.java │ ├── ModelWithAnnotatedClass_.java │ ├── ModelWithAnnotation.java │ ├── ModelWithAnnotation_.java │ ├── ModelWithCheckedChangeListener.java │ ├── ModelWithCheckedChangeListener_.java │ ├── ModelWithConstructors.java │ ├── ModelWithConstructors_.java │ ├── ModelWithDataBindingBinding.java │ ├── ModelWithDataBindingBindingModel_.java │ ├── ModelWithDataBindingWithoutDonothashBinding.java │ ├── ModelWithDataBindingWithoutDonothashBindingModel_.java │ ├── ModelWithFieldAnnotation.java │ ├── ModelWithFieldAnnotation_.java │ ├── ModelWithFinalClass.java │ ├── ModelWithFinalField.java │ ├── ModelWithFinalField_.java │ ├── ModelWithIntDef.java │ ├── ModelWithIntDef_.java │ ├── ModelWithPrivateFieldWithGetterWithParams.java │ ├── ModelWithPrivateFieldWithIsPrefixGetter.java │ ├── ModelWithPrivateFieldWithPrivateGetter.java │ ├── ModelWithPrivateFieldWithPrivateSetter.java │ ├── ModelWithPrivateFieldWithSameAsFieldGetterAndSetterName.java │ ├── ModelWithPrivateFieldWithSameAsFieldGetterAndSetterName_.java │ ├── ModelWithPrivateFieldWithSettterWithoutParams.java │ ├── ModelWithPrivateFieldWithStaticGetter.java │ ├── ModelWithPrivateFieldWithStaticSetter.java │ ├── ModelWithPrivateFieldWithoutGetter.java │ ├── ModelWithPrivateFieldWithoutGetterAndSetter.java │ ├── ModelWithPrivateFieldWithoutSetter.java │ ├── ModelWithPrivateInnerClass.java │ ├── ModelWithPrivateViewClickListener.java │ ├── ModelWithPrivateViewClickListener_.java │ ├── ModelWithStaticField.java │ ├── ModelWithSuper.java │ ├── ModelWithSuperAttributes$SubModelWithSuperAttributes_.java │ ├── ModelWithSuperAttributes.java │ ├── ModelWithSuperAttributes_.java │ ├── ModelWithSuper_.java │ ├── ModelWithType.java │ ├── ModelWithType_.java │ ├── ModelWithVarargsConstructors.java │ ├── ModelWithVarargsConstructors_.java │ ├── ModelWithViewClickListener.java │ ├── ModelWithViewClickListener_.java │ ├── ModelWithViewLongClickListener.java │ ├── ModelWithViewLongClickListener_.java │ ├── ModelWithoutEpoxyExtension.java │ ├── ModelWithoutHash.java │ ├── ModelWithoutHash_.java │ ├── ModelWithoutSetter.java │ ├── ModelWithoutSetter_.java │ ├── NullOnRecycleView.java │ ├── NullOnRecycleViewModel_.java │ ├── NullOnRecycleView_throwsIfNotNullable.java │ ├── ObjectWithoutEqualsThrowsView.java │ ├── OnViewRecycledView.java │ ├── OnViewRecycledViewModel_.java │ ├── OnViewRecycledView_throwsIfHasParams.java │ ├── OnViewRecycledView_throwsIfPrivate.java │ ├── OnViewRecycledView_throwsIfStatic.java │ ├── OnVisibilityChangedView.java │ ├── OnVisibilityChangedViewModel_.java │ ├── OnVisibilityChangedView_throwsIfInvalidParams.java │ ├── OnVisibilityChangedView_throwsIfNoParams.java │ ├── OnVisibilityChangedView_throwsIfPrivate.java │ ├── OnVisibilityChangedView_throwsIfStatic.java │ ├── OnVisibilityStateChangedView.java │ ├── OnVisibilityStateChangedViewModel_.java │ ├── OnVisibilityStateChangedView_throwsIfInvalidParams.java │ ├── OnVisibilityStateChangedView_throwsIfNoParams.java │ ├── OnVisibilityStateChangedView_throwsIfPrivate.java │ ├── OnVisibilityStateChangedView_throwsIfStatic.java │ ├── PropDefaultsView.java │ ├── PropDefaultsViewModel_.java │ ├── PropDefaultsView_throwsForNonFinalValue.java │ ├── PropDefaultsView_throwsForNonStaticValue.java │ ├── PropDefaultsView_throwsForNotFound.java │ ├── PropDefaultsView_throwsForPrivateValue.java │ ├── PropDefaultsView_throwsForWrongType.java │ ├── PropGroupsView.java │ ├── PropGroupsViewModel_.java │ ├── Prop_throwsIfMultipleParams.java │ ├── Prop_throwsIfNoParams.java │ ├── Prop_throwsIfPrivate.java │ ├── Prop_throwsIfStatic.java │ ├── RLayoutInViewModelAnnotationWorksViewModel_.java │ ├── RequireAbstractModelFailsClassWithAttribute.java │ ├── RequireAbstractModelFailsEpoxyModelClass.java │ ├── RequireAbstractModelPassesClassWithAttribute.java │ ├── RequireAbstractModelPassesEpoxyModelClass.java │ ├── SavedStateView.java │ ├── SavedStateViewModel_.java │ ├── StringOverloads_throwsIfNotCharSequence.java │ ├── TestAfterBindPropsSuperView.java │ ├── TestAfterBindPropsView.java │ ├── TestAfterBindPropsViewModel_.java │ ├── TestCallbackPropMustBeNullableView.java │ ├── TestCallbackPropView.java │ ├── TestCallbackPropViewModel_.java │ ├── TestFieldPropCallbackPropView.java │ ├── TestFieldPropCallbackPropViewModel_.java │ ├── TestFieldPropChildView.java │ ├── TestFieldPropChildViewModel_.java │ ├── TestFieldPropDoNotHashOptionView.java │ ├── TestFieldPropDoNotHashOptionViewModel_.java │ ├── TestFieldPropGenerateStringOverloadsOptionView.java │ ├── TestFieldPropGenerateStringOverloadsOptionViewModel_.java │ ├── TestFieldPropIgnoreRequireHashCodeOptionView.java │ ├── TestFieldPropIgnoreRequireHashCodeOptionViewModel_.java │ ├── TestFieldPropModelPropView.java │ ├── TestFieldPropModelPropViewModel_.java │ ├── TestFieldPropNullOnRecycleOptionView.java │ ├── TestFieldPropNullOnRecycleOptionViewModel_.java │ ├── TestFieldPropParentView.java │ ├── TestFieldPropStringOverloadsIfNotCharSequenceView.java │ ├── TestFieldPropTextPropView.java │ ├── TestFieldPropTextPropViewModel_.java │ ├── TestFieldPropThrowsIfPrivateView.java │ ├── TestFieldPropThrowsIfStaticView.java │ ├── TestManyTypesView.java │ ├── TestManyTypesViewModelBuilder.java │ ├── TestManyTypesViewModel_.java │ ├── TestNullStringOverloadsView.java │ ├── TestNullStringOverloadsViewModel_.java │ ├── TestStringOverloadsView.java │ ├── TestStringOverloadsViewModel_.java │ ├── TestTextPropIfNotCharSequenceView.java │ ├── TestTextPropMustBeCharSequenceView.java │ ├── TestTextPropView.java │ ├── TestTextPropViewModel_.java │ ├── TextPropDefaultView.java │ ├── TextPropDefaultViewModel_.java │ ├── TextPropDefaultView_throwsForNonStringRes.java │ ├── ViewProcessorTest/ │ │ ├── annotationsAreCopied/ │ │ │ ├── SourceView.kt │ │ │ ├── SourceViewModelBuilder.java │ │ │ ├── SourceViewModel_.java │ │ │ └── ksp/ │ │ │ ├── SourceViewModelBuilder.java │ │ │ └── SourceViewModel_.java │ │ ├── annotationsAreCopied_java/ │ │ │ ├── SourceView.java │ │ │ ├── SourceViewModelBuilder.java │ │ │ ├── SourceViewModel_.java │ │ │ └── ksp/ │ │ │ ├── SourceViewModelBuilder.java │ │ │ └── SourceViewModel_.java │ │ ├── inheritingAttributesWorksCorrectly/ │ │ │ ├── SourceView.kt │ │ │ ├── SourceViewModelBuilder.java │ │ │ ├── SourceViewModel_.java │ │ │ └── ksp/ │ │ │ ├── SourceViewModelBuilder.java │ │ │ └── SourceViewModel_.java │ │ ├── inheritingAttributesWorksCorrectlyJavaClassPath/ │ │ │ ├── SourceView.kt │ │ │ ├── SourceViewModelBuilder.java │ │ │ ├── SourceViewModel_.java │ │ │ └── ksp/ │ │ │ ├── SourceViewModelBuilder.java │ │ │ └── SourceViewModel_.java │ │ ├── inheritingAttributesWorksCorrectlyJavaSources/ │ │ │ ├── AirEpoxyModel.java │ │ │ ├── SourceView.kt │ │ │ ├── SourceViewModelBuilder.java │ │ │ ├── SourceViewModel_.java │ │ │ └── ksp/ │ │ │ ├── SourceViewModelBuilder.java │ │ │ └── SourceViewModel_.java │ │ ├── testManyTypes/ │ │ │ ├── EpoxyModelViewProcessorKotlinExtensions.kt │ │ │ ├── TestManyTypesView.kt │ │ │ ├── TestManyTypesViewModelBuilder.java │ │ │ ├── TestManyTypesViewModel_.java │ │ │ └── ksp/ │ │ │ ├── EpoxyModelViewProcessorKotlinExtensions.kt │ │ │ ├── TestManyTypesViewModelBuilder.java │ │ │ └── TestManyTypesViewModel_.java │ │ ├── testStyleableViewKotlinSources/ │ │ │ ├── ModelViewWithParis.kt │ │ │ ├── ModelViewWithParisModel_.java │ │ │ └── ksp/ │ │ │ └── ModelViewWithParisModel_.java │ │ └── wildcardHandling/ │ │ ├── AirEpoxyModel.java │ │ ├── SourceView.kt │ │ ├── SourceViewModelBuilder.java │ │ ├── SourceViewModel_.java │ │ └── ksp/ │ │ ├── SourceViewModelBuilder.java │ │ └── SourceViewModel_.java │ ├── baseModelFromPackageConfig/ │ │ ├── BaseModelViewModel_.java │ │ └── ksp/ │ │ ├── BaseModelViewModel_.java │ │ └── actual/ │ │ └── BaseModelViewModel_.java │ ├── baseModelFromPackageConfigIsOverriddenByViewSetting/ │ │ ├── BaseModelViewModel_.java │ │ └── ksp/ │ │ ├── BaseModelViewModel_.java │ │ └── actual/ │ │ └── BaseModelViewModel_.java │ ├── baseModelWithAttribute/ │ │ ├── BaseModelViewModel_.java │ │ └── ksp/ │ │ ├── BaseModelViewModel_.java │ │ └── actual/ │ │ └── BaseModelViewModel_.java │ ├── baseModelWithDiffBind/ │ │ ├── BaseModelViewModel_.java │ │ └── ksp/ │ │ ├── BaseModelViewModel_.java │ │ └── actual/ │ │ └── BaseModelViewModel_.java │ ├── ksp/ │ │ ├── AbstractEpoxyModelWithView_.java │ │ ├── AutoLayoutModelViewManualLayoutParamsModel_.java │ │ ├── AutoLayoutModelViewMatchParentModel_.java │ │ ├── AutoLayoutModelViewModel_.java │ │ ├── BaseModelViewModel_.java │ │ ├── BasicModelWithAttribute_.java │ │ ├── ControllerWithAutoModelWithSuperClass$SubControllerWithAutoModelWithSuperClass_EpoxyHelper.java │ │ ├── ControllerWithAutoModelWithSuperClass_EpoxyHelper.java │ │ ├── ControllerWithAutoModel_EpoxyHelper.java │ │ ├── CustomPackageLayoutPatternViewModel_.java │ │ ├── DataBindingModelWithAllFieldTypes_.java │ │ ├── DefaultPackageLayoutPatternViewModel_.java │ │ ├── DoNotHashViewModel_.java │ │ ├── EpoxyModelGroupWithAnnotations_.java │ │ ├── GenerateDefaultLayoutMethodNextParentLayout$NoLayout_.java │ │ ├── GenerateDefaultLayoutMethodNextParentLayout$StillNoLayout_.java │ │ ├── GenerateDefaultLayoutMethodNextParentLayout$WithLayout_.java │ │ ├── GenerateDefaultLayoutMethodParentLayout$NoLayout_.java │ │ ├── GenerateDefaultLayoutMethodParentLayout$WithLayout_.java │ │ ├── GenerateDefaultLayoutMethod_.java │ │ ├── GeneratedModelSuffixViewSuffix_.java │ │ ├── GridSpanCountViewModel_.java │ │ ├── IgnoreRequireHashCodeViewModel_.java │ │ ├── LayoutOverloadsViewModel_.java │ │ ├── ModelDoNotHash_.java │ │ ├── ModelDoNotUseInToString_.java │ │ ├── ModelForRProcessingTest_.java │ │ ├── ModelReturningClassTypeWithVarargs_.java │ │ ├── ModelReturningClassType_.java │ │ ├── ModelViewExtendingSuperClassModel_.java │ │ ├── ModelViewSuperClassModel_.java │ │ ├── ModelViewWithParisModel_.java │ │ ├── ModelWithAbstractClassAndAnnotation_.java │ │ ├── ModelWithAllFieldTypesBuilder.java │ │ ├── ModelWithAllFieldTypes_.java │ │ ├── ModelWithAllPrivateFieldTypes_.java │ │ ├── ModelWithAnnotatedClass_.java │ │ ├── ModelWithAnnotation_.java │ │ ├── ModelWithCheckedChangeListener_.java │ │ ├── ModelWithConstructors_.java │ │ ├── ModelWithFieldAnnotation_.java │ │ ├── ModelWithFinalField_.java │ │ ├── ModelWithPrivateFieldWithSameAsFieldGetterAndSetterName_.java │ │ ├── ModelWithPrivateViewClickListener_.java │ │ ├── ModelWithSuperAttributes$SubModelWithSuperAttributes_.java │ │ ├── ModelWithSuperAttributes_.java │ │ ├── ModelWithSuper_.java │ │ ├── ModelWithViewClickListener_.java │ │ ├── ModelWithViewLongClickListener_.java │ │ ├── ModelWithoutHash_.java │ │ ├── ModelWithoutSetter_.java │ │ ├── NullOnRecycleViewModel_.java │ │ ├── OnViewRecycledViewModel_.java │ │ ├── OnVisibilityChangedViewModel_.java │ │ ├── OnVisibilityStateChangedViewModel_.java │ │ ├── PropDefaultsViewModel_.java │ │ ├── PropGroupsViewModel_.java │ │ ├── RLayoutInViewModelAnnotationWorksViewModel_.java │ │ ├── SavedStateViewModel_.java │ │ ├── TestAfterBindPropsViewModel_.java │ │ ├── TestCallbackPropViewModel_.java │ │ ├── TestFieldPropCallbackPropViewModel_.java │ │ ├── TestFieldPropChildViewModel_.java │ │ ├── TestFieldPropDoNotHashOptionViewModel_.java │ │ ├── TestFieldPropGenerateStringOverloadsOptionViewModel_.java │ │ ├── TestFieldPropIgnoreRequireHashCodeOptionViewModel_.java │ │ ├── TestFieldPropModelPropViewModel_.java │ │ ├── TestFieldPropNullOnRecycleOptionViewModel_.java │ │ ├── TestFieldPropTextPropViewModel_.java │ │ ├── TestManyTypesViewModelBuilder.java │ │ ├── TestManyTypesViewModel_.java │ │ ├── TestNullStringOverloadsViewModel_.java │ │ ├── TestStringOverloadsViewModel_.java │ │ ├── TestTextPropViewModel_.java │ │ └── TextPropDefaultViewModel_.java │ └── testModelWithHolderGeneratesNewHolderMethod/ │ ├── AbstractModelWithHolder.kt │ ├── AbstractModelWithHolder_.java │ └── ksp/ │ └── AbstractModelWithHolder_.java ├── epoxy-processortest2/ │ ├── .gitignore │ ├── README.md │ ├── build.gradle │ └── src/ │ └── main/ │ ├── AndroidManifest.xml │ ├── java/ │ │ └── com/ │ │ └── airbnb/ │ │ └── epoxy/ │ │ └── processortest2/ │ │ └── ProcessorTest2Model.java │ └── res/ │ └── values/ │ └── strings.xml ├── epoxy-sample/ │ ├── .gitignore │ ├── build.gradle │ ├── proguard-rules.pro │ └── src/ │ └── main/ │ ├── AndroidManifest.xml │ ├── assets/ │ │ ├── exploding_heart.json │ │ └── favourite_app_icon.json │ ├── java/ │ │ └── com/ │ │ └── airbnb/ │ │ └── epoxy/ │ │ └── sample/ │ │ ├── CarouselData.java │ │ ├── ColorData.java │ │ ├── EpoxyConfig.java │ │ ├── MainActivity.java │ │ ├── SampleController.kt │ │ ├── models/ │ │ │ ├── BaseEpoxyHolder.kt │ │ │ ├── BaseView.java │ │ │ ├── CarouselModelGroup.java │ │ │ ├── ColorModel.kt │ │ │ ├── ImageButtonModel.kt │ │ │ ├── SimpleAnimatorListener.java │ │ │ ├── TestModel1.kt │ │ │ ├── TestModel2.kt │ │ │ ├── TestModel3.kt │ │ │ ├── TestModel4.kt │ │ │ ├── TestModel5.kt │ │ │ ├── TestModel6.kt │ │ │ └── TestModel7.kt │ │ └── views/ │ │ ├── GridCarousel.java │ │ └── HeaderView.java │ └── res/ │ ├── drawable/ │ │ ├── ic_add_circle.xml │ │ ├── ic_change.xml │ │ ├── ic_delete.xml │ │ └── ic_shuffle.xml │ ├── layout/ │ │ ├── activity_main.xml │ │ ├── button.xml │ │ ├── model_carousel_group.xml │ │ ├── model_color.xml │ │ ├── model_image_button.xml │ │ ├── number_view.xml │ │ └── view_header.xml │ ├── values/ │ │ ├── dimens.xml │ │ └── strings.xml │ └── values-w820dp/ │ └── dimens.xml ├── epoxy-viewbinder/ │ ├── .gitignore │ ├── build.gradle │ ├── gradle.properties │ ├── proguard-rules.pro │ └── src/ │ ├── main/ │ │ ├── AndroidManifest.xml │ │ ├── java/ │ │ │ └── com/ │ │ │ └── airbnb/ │ │ │ └── epoxy/ │ │ │ ├── EpoxyViewBinder.kt │ │ │ ├── EpoxyViewBinderExtensions.kt │ │ │ ├── EpoxyViewBinderVisibilityTracker.kt │ │ │ ├── EpoxyViewStub.kt │ │ │ └── ViewExtensions.kt │ │ └── res/ │ │ └── values/ │ │ └── ids.xml │ └── test/ │ └── java/ │ └── com/ │ └── example/ │ └── epoxy_viewbinder/ │ └── EpoxyViewBinderTest.kt ├── gradle/ │ └── wrapper/ │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradle.properties ├── gradlew ├── gradlew.bat ├── kotlinsample/ │ ├── .gitignore │ ├── build.gradle │ ├── proguard-rules.pro │ └── src/ │ ├── main/ │ │ ├── AndroidManifest.xml │ │ ├── java/ │ │ │ └── com/ │ │ │ └── airbnb/ │ │ │ └── epoxy/ │ │ │ └── kotlinsample/ │ │ │ ├── DragAndDropActivity.kt │ │ │ ├── EpoxyDataBindingPatterns.kt │ │ │ ├── MainActivity.kt │ │ │ ├── StickyHeaderActivity.kt │ │ │ ├── StickyHeaderAdapter.kt │ │ │ ├── StickyHeaderController.kt │ │ │ ├── helpers/ │ │ │ │ ├── EpoxyCarouselNoSnapBuilder.kt │ │ │ │ ├── KotlinEpoxyHolder.kt │ │ │ │ ├── KotlinModel.kt │ │ │ │ ├── ViewBindingEpoxyModelWithHolder.kt │ │ │ │ └── ViewBindingKotlinModel.kt │ │ │ ├── models/ │ │ │ │ ├── CarouselItemCustomView.kt │ │ │ │ ├── ColoredSquareView.kt │ │ │ │ ├── DecoratedLinearGroupModel.kt │ │ │ │ ├── ItemCustomView.kt │ │ │ │ ├── ItemDataClass.kt │ │ │ │ ├── ItemEpoxyHolder.kt │ │ │ │ ├── ItemViewBindingDataClass.kt │ │ │ │ ├── ItemViewBindingEpoxyHolder.kt │ │ │ │ ├── ManualLayoutParamsView.kt │ │ │ │ ├── OnVisibilityEventDrawable.kt │ │ │ │ └── StickyItemEpoxyHolder.kt │ │ │ └── views/ │ │ │ └── CarouselNoSnap.kt │ │ └── res/ │ │ ├── drawable/ │ │ │ └── ic_launcher_background.xml │ │ ├── drawable-v24/ │ │ │ └── ic_launcher_foreground.xml │ │ ├── layout/ │ │ │ ├── activity.xml │ │ │ ├── carousel_custom_view_item.xml │ │ │ ├── colored_square_view.xml │ │ │ ├── custom_view_item.xml │ │ │ ├── data_class_item.xml │ │ │ ├── data_class_view_binding_item.xml │ │ │ ├── decorated_linear_group.xml │ │ │ ├── epoxy_layout_data_binding_item.xml │ │ │ ├── sticky_view_holder_item.xml │ │ │ ├── vertical_linear_group.xml │ │ │ ├── view_binding_holder_item.xml │ │ │ └── view_holder_item.xml │ │ ├── mipmap-anydpi-v26/ │ │ │ ├── ic_launcher.xml │ │ │ └── ic_launcher_round.xml │ │ └── values/ │ │ ├── colors.xml │ │ ├── ids.xml │ │ ├── strings.xml │ │ └── styles.xml │ └── test/ │ └── java/ │ └── com/ │ └── airbnb/ │ └── epoxy/ │ └── kotlinsample/ │ ├── AnnotationModel.kt │ ├── ConstructorWithLambdaModel.kt │ └── ConstructorWithoutLamdaModel.kt ├── ktlint.gradle ├── libs/ │ ├── rt.jar │ └── tools.jar ├── publishing.gradle ├── reports/ │ └── profile/ │ ├── css/ │ │ ├── base-style.css │ │ └── style.css │ ├── js/ │ │ └── report.js │ └── profile-2020-03-31-14-39-05.html └── settings.gradle