Bot releases are visible (Hide)
Published by elihart about 4 years ago
epoxy-paging3
artifactlogEpoxyTimings
can be set to get a detailed breakdown of how long the processors took and where they spent their time (off by default)enableParallelEpoxyProcessing
can be set to true to have the annotation processor process annotations and generate files in parallel (via coroutines).You can enable these processor options in your build.gradle file like so:
project.android.buildTypes.all { buildType ->
buildType.javaCompileOptions.annotationProcessorOptions.arguments =
[
logEpoxyTimings : "true",
enableParallelEpoxyProcessing : "true"
]
}
Parallel processing can greatly speed up processing time (moreso than the incremental support), but given the hairy nature of parallel processing it is still incubating.
Please report any issues or crashes that you notice.
(We are currently using parallel mode in our large project at Airbnb with no problems.)
Annotations that previously targeted package elements now target types (classes or interfaces).
This includes: EpoxyDataBindingPattern
, EpoxyDataBindingLayouts
, PackageModelViewConfig
, PackageEpoxyConfig
This was necessary to work around an incremental annotation processor issue where annotation on package-info elements are not properly recompiled
In order to enable incremental annotation processing a change had to be made in how the processor of
@AutoModel
annotations work. If you use @AutoModel
in an EpoxyController the annotated Model types
must be either declared in a different module from the EpoxyController, or in the same module in the same java package.
Also make sure you have kapt error types enabled.
However, generally @AutoModel
is considered legacy and is not recommended. It is a relic of Java Epoxy usage
and instead the current best practice is to use Kotlin with the Kotlin model extension functions to build models.
Removed support for generating Epoxy models from Litho components
Published by elihart about 4 years ago
Published by elihart over 4 years ago
Fixes:
Breaking!
EpoxyDataBindingLayouts
and EpoxyDataBindingPattern
,package-info.java
file. The interfaceExample usage:
package com.example.app;
import com.airbnb.epoxy.EpoxyDataBindingLayouts;
import com.airbnb.epoxy.EpoxyDataBindingPattern;
@EpoxyDataBindingPattern(rClass = R.class, layoutPrefix = "my_view_prefix")
@EpoxyDataBindingLayouts({R.layout.my_model_layout})
interface EpoxyDataBindingConfig {}
Published by elihart over 4 years ago
Fixes:
Published by elihart over 4 years ago
New annotation processor options are:
These can also be controlled (and overridden) on a per package level with the PackageModelViewConfig
package annotation.
Published by elihart over 4 years ago
logEpoxyTimings
can be set to get a detailed breakdown of how long the processors took and where they spent their time (off by default)enableParallelEpoxyProcessing
can be set to true to have the annotation processor process annotations and generate files in parallel (via coroutines).You can enable these processor options in your build.gradle file like so:
project.android.buildTypes.all { buildType ->
buildType.javaCompileOptions.annotationProcessorOptions.arguments =
[
logEpoxyTimings : "true",
enableParallelEpoxyProcessing : "true"
]
}
Parallel processing can greatly speed up processing time (up to 8x), but given the nature of parallel processing it is still incubating.
Please report any issues or crashes that you notice.
(We are currently using parallel mode in our large project at Airbnb with no problems.)
In order to enable incremental annotation processing a change had to be made in how the processor of
@AutoModel
annotations work. If you use @AutoModel
in an EpoxyController the annotated Model types
must be either declared in a different module from the EpoxyController, or in the same module in the same java package.
Also make sure you have kapt error types enabled.
However, generally @AutoModel
is considered legacy and is not recommended. It is a relic of Java Epoxy usage
and instead the current best practice is to use Kotlin with the Kotlin model extension functions to build models.
Published by elihart over 4 years ago
Published by elihart over 4 years ago
Published by elihart almost 5 years ago
Published by elihart about 5 years ago
Published by elihart over 5 years ago
New Add a method to request visibility check externally (https://github.com/airbnb/epoxy/pull/775)
Published by elihart over 5 years ago
Published by elihart over 5 years ago
Bumps kotlin to 1.3.31
Published by elihart over 5 years ago
New Converted EpoxyRecyclerView to Kotlin (you may need to update your usage for this). Also added built in support for EpoxyRecyclerView#withModels
for easy inline model building with Kotlin - this should replace Kotlin usage of buildModelsWith
Fixed Crashes in visibility tracking
Published by elihart over 5 years ago
Fixed Kotlin default param handling had issues with overloaded functions
Published by elihart over 5 years ago
The previous 3.4.0 release was supposed to include the Kotlin default param change, but it was mistakenly excluded. This includes it as intended.
Published by elihart over 5 years ago
New Support kotlin default parameters in @ModelView classes (https://github.com/airbnb/epoxy/pull/722)
New Generate OnModelCheckedChangeListener override for props of type CompoundButton.OnCheckedChangeListener
(https://github.com/airbnb/epoxy/pull/725)
New Extract ID generation methods to new public IdUtils class (https://github.com/airbnb/epoxy/pull/724)
Changed Reset controller state on failed model build (https://github.com/airbnb/epoxy/pull/720)
Changed Disabled the auto-detach behavior on Carousels by default (https://github.com/airbnb/epoxy/pull/688)
Published by elihart over 5 years ago
Published by elihart over 5 years ago
Published by elihart over 5 years ago