All Versions
74
Latest Version
Avg Release Cycle
28 days
Latest Release
-

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 in PagingDataEpoxyController (#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.