Changelog History
Page 1
-
v5.1.0 Changes
โก๏ธ Updates Kotlin to 1.7.20 and KSP to 1.7.20-1.0.7, as well as the room compiler processing (xprocessing) library to 2.5.0-beta01.
Also deletes the epoxy-paging artifact in favor of the newer epoxy-paging3
-
v5.0.0 Changes
๐ This adds support for Kotlin Symbol Processing, while maintaining backwards compatibility with java annotation processing via the xprocessing library from Room.
This includes a major version bump to 5.0.0 because there may be slight behavior differences with KSP, especially for generic types in generated code. For example, if you previously had an epoxy attribute in java source code with a raw type it may now appear in the generated code with a wildcard type, which may require tweaking the type that is passed to the model.
โ Additionally, some type checking was improved, for example more accurate validation of proper equals and hashcode implementations.
๐ To use Epoxy with KSP, simply apply it with the ksp gradle plugin instead of kapt (https://github.com/google/ksp/blob/main/docs/quickstart.md). See the new epoxy-kspsample module for an example.
๐ง Note that unfortunately the databinding processor does NOT support KSP, simply because Android databinding itself uses KAPT and KSP cannot currently depend on KAPT sources. The code changes are in place to enable KSP with databinding once the databinding plugin from Android supports KSP (although this is unlikely) - alternatively it may be possible to configure the KSP plugin to run after KAPT and depend on its outputs (you're on your own if you want to try that).
๐ Also, parallel processing support was removed because it is not compatible with KSP.
We have also added easy interop with Jetpack Compose via functions in the
epoxy-composeinterop
artifact. ๐ See the epoxy-composesample module for example usage. -
v4.6.4 Changes
September 23, 2021- Clean up dependency for the experimental epoxy module
-
v4.6.3 Changes
September 11, 2021- โ Add EpoxyModel#preBind hook(#1225)
- โ Add unbind extension to ItemViewBindingEpoxyHolder (#1223)
- โ Add missing loadStateFlow to PagingDataEpoxyController (#1209)
-
v4.6.2 Changes
June 11, 2021๐ Fix Drag n Drop not working in 4.6.1 (#1195)
-
v4.6.1 Changes
May 13, 2021โ Adds "epoxyDisableDslMarker" annotation processor flag which you can use to delay migration to the model building scope DLSMarker introduced in 4.6.0 if it is a large breaking change for your project.
๐ Note that this only applies to your project modules that you apply it to, and does not apply to the handful of models that ship with the Epoxy library (like the Carousel or
group
builder).For example:
project.android.buildTypes.all { buildType -> buildType.javaCompileOptions.annotationProcessorOptions.arguments = [ epoxyDisableDslMarker : "true", ] }
-
v4.6.0 Changes
May 12, 2021- ๐ View Binder Support (#1175) Bind epoxy models to views outside of a RecyclerView.
Potentially Breaking
- ๐ Use kotlin dsl marker for model building receivers (#1180)
๐ This change uses Kotlin's DSL marker annotation to enforce proper usage of model building extension ๐ functions. You may now need to change some references in your model building code to explicitly reference properties with
this
. -
v4.5.0 Changes
April 13, 2021- ๐ Fix generated code consistency in builder interfaces (#1166)
- ๐ Provided support to invalidate
modelCache
inPagingDataEpoxyController
(#1161) - Explicitly add public modifier (#1162)
- Unwrap context to find parent activity in order to share viewpool when using Hilt (#1157)
-
v4.4.4 Changes
March 24, 2021- ๐ Provide support for snapshot() function in PagingDataEpoxyController (#1144)
-
v4.4.3 Changes
March 17, 2021- ๐ Fixed interface model related regression introduced in the previous release.