Releases: alexzhirkevich/compottie
2.1.0
Fixes
- Fixed crash regression related to memory management (#68)
Features
- Added support for dotLottie theming capability. Theme Id is passed to the LottiePainter and can be changed at any time
val painter = rememberLottiePainter(
composition = dotLottieComposition,
progress = progress,
theme = "sunset", // "night", "day", "winter"
)
2.0.3
- Compose updated to 1.10.1
- Kotlin updated to 2.3.0
Fixes
- Fixed a bug when autooriented layer rotation was not propagated to the child layers
- Fixed a bug when layer`s transform rotation was ignored when combined with autoorient rotation
- Improved performance of .lottie and images decoding on Web. Such animations are now decoded in a background worker
2.0.2
Fixes:
- Improved performance and RAM usage by reducing boxing of primitives and value classes (thanks @tindy2013)
- Fixed a bug when painters created with cached compositions had disabled expressions.
- Fixed a bug when some layers can be missplaced with
applyOpacityToLayersenabled.
2.0.1
- Compose updated to 1.9.0
Features
- Added support for dotLottie v2 file format (fixes #43)
Fixes
- Fixed a bug that was preventing unnamed properties and their children to participate in dynamic properties wildcard path matching
- Fixed a json parsing issue for font assets with missing ascent property
- Fixed a bug with disabled images, fonts and expressions for animations with dynamic properties
- Fixed a bug that can lead to stack overflow or ANR at specific expressions
2.0.0
🚀 Stable Compottie 2.0 release
The new custom Compottie renderer is now stable and safe to use.
Changes since 2.0.0-rc05:
Fixes:
- Fixed Google Play upload and <35 sdk issues due to
removeFirst/removeLastusage
2.0.0-rc05
Changes since 2.0.0-rc04
- JS interpreter for AE expressions was moved to separate repository and was greatly improved. It still does not fully conform to ES, but should run fine for the most of supported expressions.
- Expressions are now enabled by default.
Features:
-
Coroutine context for composition and painter loading is now configurable with
coroutineContextparameter. IO dispatcher is used by default. -
New module:
compottie-lite.
Same ascompottie, but without expressions support. Its binary size is 2 times smaller.This update doubles the size of
compottiemodule, so the size ofcompottie-liteis actually the same (a little bit less) then thecompottiemodule size in the previous version
Fixes:
- Fixed binary incompatibility with kotlinx-datetime 0.7+.
- Fixed a bug that may lead to an infinite loop and device overheat when loading animation due to in-memory cache corruption.
- Expressions now aren't parsed when
enableExpressionsis set to false. Previosly they were parsed but not used (#41)
2.0.0-rc04
Changes since 2.0.0-rc02:
Features
- Added new api to controll runtime composition cache -
LocalLottieCache. Old api viaCompottieobject was removed
Fixes
- Fixed broken gradients when number of opacity stops doesn't match number of colors (#30)
- Fixed dashed stroke with odd number of dash-gaps was not rendered and was logging Skia exceptions
- Removed inlining of dynamic properties DSL to make it consistently available on lower JVM targets
2.0.0-rc02
Changes since 2.0.0-rc01:
- Compose updated to 1.7.0
- Ktor updated to 3.0.0
Features
- Added support for slottable properties
Fixes
- FIxed a bug when some animations can become corrupted after the first loop
- Fixed possible Kotlin version incompatibilities
2.0.0-rc01
Changes since 2.0.0-beta02:
Features
- Added support for 3d rotation (X, Y) on Android. Now all the targets support this type of transform
- Added wildcard support for dynamic properties (#9) by @sergeys-opera
- Added HTTP client independent
network-coremodule that allows to use custom client to load animations. Defaultnetworkmodule is now using Ktor3.
Fixes
- Fixed wasm dotLottie decoding
- Fixed font ascent isn't applied when calculating text Y
- Fixed stroke skew isn't applied correctly
- Fixed a bug when the first animation frame is not rendered (when the progress is zero) (#12)
- Added synchronization for dotLottie assets decoding. It fixes a bug when dotLottie assets may fail to load when there are a lot of them (such as gif-like animations where each frame is a separate image)
- Fixed multiple JSON decoding issues
- Fixed a bug when precomposition layer effects were applied to all precomposition layers of a single source
- Fixed Round Shape that wasn't working as expected and was causing memory leaks
- Improved blending. It is now applied directly to the layer and should be more accurate
2.0.0-beta02
Changes since 2.0.0-beta01:
Highlights
- Added support for AE expressions (#10).
After Effects Expressions are JS scripts that you can use together with keyframes and dynamic properties to animate objects.
Compottie now has it's own lightweight ECMAScript / JS interpreter and supports most of commonly-used After Effects expressions (such as math, random, wiggle, looping, properties, time manipulation, etc).
Expressions are enabled by default under the enableExpressions LottiePainter feature flag . You can disable it if your animation doesn't work as expected or displays warnings.
Fixes
- Fixed a bug when animations with precompositions would not display without assets manager provided (#8)
LottieImagewas renamed toLottieImageSpec(to matchLottieFontSpec). It may affect you if you were implementing customLottieAssetsManager- Improved content scale for LottiePainter. It is now correctly scaled when you use
ContentScalelikeFillBounds,FillWidth,FillHeightforImagethat draws the painter.
Features
- LottiePainter now has extra parameter called
enableTextGrouping. It allows to correctly render words in some unusual/RTL locales such as Arabic, but adds some limitations. Text positioning may become broken