- Supported
clip_to_bounds
property indiv-container
. - Optimized binding process of base div properties.
- Optimized binding process of
div-text
. - Optimized binding process of
div-separator
. - Optimized binding process of
div-container
. - Fixed calling of disappear actions for tooltips.
- Fixed parent's vertical scroll starting at
div-slider
. - Fixed state switching of
div-gallery
items. - Fixed incorrect height of
div-input
. - Fixed text color applying for ranges in
div-text
.
- Fixed
DivVariableStorage
change events. - Optimized
DivData
parsing. - Improved
DivBlockModelingContext
cloning.
- Fixed rare cases with the
lottie
animations load errors.
- Removed
non_empty_string
type. - Removed some
minItems
restirctions. items
property incontainer
,gallery
,pager
andgrid
became not required.
- Fixed timers cleared after patch.
- Added Complex Rebind flag.
- Added ability to reset expression runtimes, error collectors and selected states for given data tags.
- Added the ability to change ViewPreCreationProfile in Div2Context.
- Added supporting 'try' operator.
- Fixed a case when the wrong DivActionHandler was used.
- Improved performance by making functions stateless.
- Fixed a bug that visibility_action does not work for children of the gallery element.
- Added the ability to enable/disable the scrollbar in the gallery.
- Added Coil image loader.
- Supported
item_builder
property inDivContainer
. - Supported
scrollbar
property inDivGallery
. - Supported
clipToBounds
parameter inDivContainer
.
- Breaking change: expressions are now executed without waiting for all variables in them.
- Breaking change. The type
Variable
and other related types (such asStringVariable
) are now classes, not interfaces. In most cases, all the code will work the same way, but in rare cases it may break something. Also note that it is now possible to check variable type with theinstanceof
, which works as a type-guard in TypeScript (getValue()
will return a value with the correct type). Previously, this was not possible because onlygetType
existed, and TypeScript would not use it as a type-guard. - Breaking change: private methods in DivKit instance was removed. This methods was not typed and was not documented.
- Breaking change: added arrows for
pager
on thedesktop
platform. There are new customization options for these arrows. Also note that theplatform
can be configured using therender
method. - Breaking change: the internal implementation of the
lottie
extension has been changed. This was required to fix the issue with simultaneous display of fallbackgif
withlottie
itself. If you are providing a similar extension created from scratch, you may need to change it a bit. - Added try operator
!:
for expressions. - Undeclared variables would not cause expressions to fail (even without getting their values) (revert change from version 23.4.0). The error would still occur if the expression actually evaluated an undeclared variable.
- Fixed the behavior of
match_parent
inside thecontainer
with the size ofwrap_content
andorientation
=overlap
. - Added
len
function for array variables. - Fixed an issue with the expressions support inside
transition_change
property. - Fixed an SSR error that occured when rendering a card with a list of timers.
- Empty containers (without
items
) is now allowed. - Added support for patches in
tabs
andstates
(note that patches require exactly one element for each change, unlike other types of components). text
component with an emptytext
property is now allowed.- Fixed an issue with whitespace near brackets
()
in expressions. - Added a new experimental method
setData
. This method allows you to quickly redraw the DivKit card using a new json, much more efficiently than directly destroying and recreating it again. - Fixed possible errors in integer calculation for the functions
getArrayInteger
,getIntegerFromArray
,getArrayOptInteger
,getOptIntegerFromArray
,getDictInteger
,getIntegerFromDict
,getDictOptInteger
,getOptIntegerFromDict
,copySign
. - Fixed an issue with a
separators
incontainer
in thessr
mode. - Empty
grid
,gallery
andpager
are now allowed.
- Fixed using incorrect uri scheme in Beacon.
- Fixed broken fade animation.
- Added the ability to set the lineHeight to be smaller than the font size.
- Supported
!:
operator.
- Added
getStoredUrlValue
functions. - Removed dependency on androidx.fragment.
- Fixed the hyphenation of images in the text.
- Fixed baseline alignment in
DivCustom
. - Fixed bind on enabled bind_on_attach.
- Fixed alignment of the DivStateLayout.
- Change the unit of video duration to ms
- Optimized actions resolving.
- Removed
UserInterfaceAction.Payload.json
usage. - Fixed putting text to pasteboard when cutting in the input with a mask.
- Fixed
DivPager
state updating.
- Added
scrollbar
property support ingallery
. - Fixed the text of the missing
gif_url
error. Also thegif
component now usesgif_url
andimage
usesimage_url
, instead of both of them consuming any of these 2 properties. - Removed empty
padding
attribute from html. - Fixed empty
image
s (andgif
s) to load error. Note "empty image" here is animage
with animage_url
property equal toempty://
.
- Added functions to get URL value:
getUrlValue
,getUrlFromArray
,getUrlFromDict
. - Added functions to get Color from Dict:
getOptColorFromDict
,getDictOptColor
. - Fixed incorrect height of select.
- Supported infinite scrolling in the pager.
- Fixed
change_bounds
animations content scale.
- Fixed an issue with the
focus
property support inslider
component. - Added
focus_element
typed action support.
- Added new evaluable type - EvaluableType.URL
- Added functions
toString(url)
,toUrl(str)
andtoColor(str)
. - Added
scale
property support in thevideo
component. - Fixed crash when
DivState
has emptystates
array. - Fixed crash when clicking "Next" on keyboard in
DivInput
insideDivGallery
. - Fixed
DivInput
not working inDivPager
.
- Fixed clipping to bounds of view when rotating.
- Added
copy_to_clipboard
action support. - Fixed cross-axis container items with the
match_parent
size logic in combination with thewrap_content
size of the container itself. - Fixed
gallery
scrolling withwrap_content
andmax_size
property.
- Added infinite scrolling property to the pager.
- Added common interface for all div views.
- Added a workaround for a bug in R8 that sometimes causes a
ClassCastException
when usingDivGallery
orDivGridLayout
. - Fixed
DivCustom
wrong ids forDivGallery
items.
- Added
VideoDurationExtensionHandler
.
- Fixed the first/last separator of the
container
withspace-evenly
andspace-around
alignment. - Added an additional api with
props
andvariables
forcustom
components. - Added
array_insert_value
andarray_remove_value
typed actions. - Added support for expressions in the
execAction
method.
- Added optional param
databasePrefix
toDivStorageComponent#create
method. - Fixed crash in
DivGallery
withscroll_mode
set topaging
. - Fixed unnecessary bindings after triggers changing DivGallery state before its elements are bound.
- Fixed
DivDataRepositoryImpl.getAll()
card duplicates. - Fixed variable triggers cleared after patch.
- Added
DivImageHolderFactory
protocol.
- Added
aspect
support for thevideo
component. - Added
text_shadow
support for thetext
component. - Supported
set_variable
typed action. - Fixed text cropping in several cases, especially with the
max_lines
property. - Fixed an issue with the
input
server-side rendering (SSR).
- Added
DivVariableStorage
. - Added
scale
property support in thevideo
component.
- Added
custom
component support.
- Fixed width of drawables stroke.
- Fixed runtime warnings and errors clearing when reusing
Div2View
after callingcleanup
.
- Replaced
DivActionSource.custom
with.timer
and.trigger
.
- Added
scale
property support in thevideo
component. - Added
array
variable type, alongside with the couple of functionsgetStringFromArray
,getOptDictFromArray
and others. - Added aliases for the existing
dict
fucntions:getStringFromDict
(alias for thegetDictString
) with many others. dict
variables are now shown in markup as json instead of old<dict>
(newarray
s works the same).- Fixed zero size support in
shape
s.
- Changed
variablesStorage
visibility to public.
Additions:
- Updated divkit-demo-app and divkit-lottie okhttp and okio dependencies due to CVE.
- Updated Kotlin to 1.8.22.
- Updated Gradle to 8.3.
- Updated AGP to 8.1.1.
- Implemented
DivVariableController
and since now it should be used instead ofGlobalVariableController
.GlobalVariableController
was deprecated.
Fixes:
- Fixed
div-input
multikey mask with single pattern element. - Fixed applying
maxWidth
andmaxHeight
to gallery children. - Fixed incorrect background color on
div-input
rebind. - Fixed snapping in
div-gallery
withpaging
scroll_mode
. - Fixed
div-pager
visibility action with 100% visibility percentage not called for last item.
Additions:
- Added
copy_to_clipboard
action handler. - Added
array_insert_value
andarray_remove_value
action handlers. - Added
getArray
/getDict
functions.
Fixes:
- Fixed clickability of a margin area.
Deprecation:
palette
andtheme
marked as deprecated.
Fixes:
- Fixed
input
multikey mask with the single pattern element.
- Added support of ranges in
DivSlider
for Android and iOS
- Added automatic
ViewPool
optimization flag - Fixed crash on empty
DivInput
placeholder DivImageLoader
methods should be called on main thread now
- Added support of ranges in
DivSlider
- Fix cursor position in phone input mask
- Supported variable in
DivState
- Fixed custom
text
color with focus (without explicitfocused_text_color
property)
Additions:
- Added RTL-mirror filter for
DivImage
- Added support of ranges in
DivSlider
. - Added
copy_to_clipboard
typed action. - Added accessibility support for text ranges
- Added android implementation of
DivImageLoader
:PicassoDivImageLoader
/GlideDivImageLoader
using Picasso and Glide accordingly
Fixes:
- Fixed drawing corners during transition
- Fixed slider sticking in the beginning of moving.
Additions:
- Implemented
space-between
,space-around
,space-evenly
alignments - Added
DivReporter
protocol. - Added
set_variable
action handler.
Additions:
- Added
state_id_variable
support in thestate
component
- Typed actions moved to singleton scope.
- Removed asserts in
DivDataRepository
. - Locally collect
ViewPool
statistic for optimization. - Implemented
StoredValuesController
. - Added ability to patch inside gallery/pager items.
- Fixed shadows overlap container's children.
- Added ability to request focus action.
- Support for gif images in
playground
andsample-app
. text_shadow
implementation.- Support alignments with spaces.
- Array variable mutations.
- Fixed the inability to patch an item inside the gallery that inside the other gallery.
- Improved
DivSlider
performance. - Fixed memory leaks in
ExpressionResolver
. - Fixed
DivContainer
with constrained children height. - Fixed phone mask in
DivInput
.
- Fixed missing * symbol in Url validating regex.
- Support RTL for
DivPager
. - Added
get<Type>FromDict/get<Type>FromArray
functions for arrays.
- Fixed
DivInput
mask. - Fixed alignment in overlapped
DivContainer
.
- Added
text_shadow
property - Added
ranges
to slider - Added
array
variable type
Breaking changes:
- Added ArrayVariable case into Variable class.
Added:
- RTL for div-select
- Support non-linear font scaling
- Phone masks
- Array get functions
Braking changes:
- Added array variables support. Added
array
case intoDivVariableValue
enum. - Improved error types: reduced visibility of
DivBlockModelingError
,DivBlockModelingWarning
types,DivError
typealias replaced with protocol. - Reduced visibility of types and methods not intended to be used outside the framework:
DivLastVisibleBoundsCache
,DivVisibilityCounter
,EmptyDivCustomBlockFactory
,
Other changes:
- Added some array functions
- Added phone masks support in
DivInput
- Added
DivViewPreloader
forDivView
- Added
match_parent
size support for tooltips
- Deprecate constructors without LifecycleOwner
- Added aspect ratio for video
- Fixed doubletaps
- Improved visibility action binding performance
- Added center alignment for tooltips.
- Fixed Swift 5.7 compatibility.
- Fixed DivInput line height.
- Added
tooltips
support - Fixed an issue with the big amount of the unused event listeners on the DOM nodes
- Added phone input mask schema
- Added
state_id_variable
toDivState
- Enabled accessibility flag by default
- Fixed state update on rebind
- Fixed showing
transition
fromvisible
toinvisible
/gone
on first draw - Fixed
SQLiteFullException
inDivStorage
causing app crash
- Added RTL support for
DivImage
,DivInput
,DivSlider
. - Fixed
updateCardAction
calls for elements with variables binding. - Fixed visibility counters.
- Fixed Lottie and Rive blocks comparison.
Fixes:
- Fixed an issue with a
gallery
component with thedefault_item
outside of the items range
- Replaced
left
withstart
alignment by default - Added
center
DivTooltip
position - Added
aspect
toDivVideo
- Fixed
DivTooltip
withmatch_parent
size - Fixed crash caused by
DivTimer
actions execution afterDivView
detach - Observe
DivVideo
muted
property - Updated video player manager
- Improved binding performance
- Added RTL-layout support for
DivTabs
. - Fixed crash in
DivInput
mask validator.
Additions:
- Added
div-patch
,download
action anddownload_callbacks
support - Added support for the
focus
parameters (including ``focused_text_color`)
- Lottie version updated to 6.1.0
- Added configuration paramater for scroll interception angle.
- Method DivConfiguration.Builder#enableAccessibility is deprecated now.
- Fixed layout of children with match_parent size inside container with constrained wrap_content size.
- Fixed input layout with constrained wrap_content height.
- Fixed image layout with constrained wrap_content size.
- Fixed visibility tracking of views that has been removed after patch.
- Added
DivView
. - Added RTL support for
DivText
,DivGallery
,DivPager
andDivIndicator
. - Fixed state management for
DivGallery
.
- Added RTL support for container, tabs, slider and indicator
- Fixed multiple find lifecycleOwner call
- Fixed multiple out animations ignoring or view doubling
- Added
getStoredValue
functions support. - Added RTL layout support in
DivContainer
. - Added
updateCardSignal
toDivKitComponents
. - Replaced
UrlOpener
withDivUrlHandler
protocol. ChangedDivActionHandler
API.
Fixes:
- Fixed an issue with the integer values from the several functions:
getYear
,getMonth
,getDay
,getDayOfWeek
,getHours
,getMinutes
,getSeconds
,getMillis
,len
,index
andlastIndex
. These integer values previously could produce errors in integer operations
- Supported
text_alignement_horizontal
andtext_alignement_vertical
properties indiv-input
- Added
start
andend
values to horizontal alignment - Added
start
andend
values to paddings and margins - Supported right-to-left layout direction for
wrap
container - Supported dictionary functions
- Fixed
visibility_actions
in DivStates
- Added
testRegex
function. - Fixed visibility action for
DivStates
.
- Supported
text_alignement_horizontal
andtext_alignement_vertical
properties ininput
- Added
start
andend
to horizontal alignment.
- Added
testRegex
function. - Supported
constrained
property inwrap_content
size for pagers. - Ignore constrained along wrap-container's cross axis.
- Fixed gallery
item_space
in RTL layout direction.
- Ignore constrained along wrap-container's cross axis.
- Supported
start
andend
parameters in margins, padding.
- Implemented
testRegex
function content_alignment_
properties along cross-axis incontainer
with thewrap
mode will now align rows / columns of items, instead of children components (to better match Android / iOS behavior).- Fixed expression processing without variables (constant expressions).
boolean_int
properties will now accepttrue
andfalse
values in addition to1
/0
. These boolean values will be automatically converted to1
/0
, but only if thedivCard
function is used. Beware of old clients with the old DivKit SDK, they may not accept booleantrue
/false
values.
- Added
start
andend
properties to edge insets. - Supported user-defined font families.
- Added profile to configure number of precreated views.
- Supported margins for wrap container separators.
- Supported user-defined font families.
- Supported beacons in swipe_out_actions
- Fixed indicators alignment when they cannot fit to container
- Fixed
release
method not called on destroy - Fixed sequential patch applyment
- Supported user-defined font families.
- Added async image previews loading.
- Fixed expressions support in
DivState.default_state_id
. - Fixed recurring visibility actions.
- Fixed
fatal_actions
in thevideo
component logic - Fixed
video
unmount logic - Incorrect non-array
background
s will not throw error - Fixed default
visibility_percentage
value in thedisappear_action
- Fixed
disappear_action
with the percentage equal to0
- Allowed expressions in the
visibility_percentage
- Added extension div data creation.
compileSdkVersion
updated to 34- Supported margins for linear container separators.
- Added Xcode 14.3 & Xcode 15 support.
- Fixed player pausing in VideoBlock.
- Fixed update of the
gallery
with thescroll_mode
=paging
anddefault_item
in rare cases
- Fixed accessibility for
DivSelect
- Fixed
min_width
for horizontal container - Fixed accessibility for
DivSelect
- Fixed borders with rounded corners.
- Fixed
DivGallery
withmatch_parent
items layout.
- ExoPlayer version updated to
2.18.4
- Supported preview image in DivVideo
- Fixed trigger rebind for DivData with the same DivDataTag
- Fixed disappear actions timer invalidation
- Fixed video player engine disconnecting from view when any activity stopped
- Added regex validator for
div-input
- Added support of disappear actions
- Added support of text alignment to
div-input
DivStorage
forwards IllegalStateExceptions toLoadDataResult
now
- Supported resume, pause, fatal actions in
DivVideo
- Supported disappearing actions
Added:
- Supported
dict
variable type
Additions:
- Added
text_alignment_
properties fordiv-input
Additions:
- Added
disappear_actions
- Added
DivCustomContainerViewAdapter
withDivStatePath
propagation to implementations
Fixes:
- Fixed
DivSelect
line height - Fixed permanent destroying video manager on view detach
- Fixed big corner radius drawing
Additions:
- Added
disappear_actions
- Added
fixed_length
mask forDivInput
- Added
margins
for separators inDivContainer
Added:
- New content alignments in the
container
:space-between
,space-around
,space-evenly
font_family
property is now supported in the different components. Keep in mind, for this property to work, you need to provide atypefaceProvider
margins
for acontainer
separators are now supported
- Supported properties from scheme up to 25.2.0
Additions:
- Added
disappear_actions
- Added new variable type:
dict
- Added new types of content-alignment:
space-between
,space-around
,space-evenly
- Added new property of container separators:
margins
Additions:
- Supported multiple
RenderScript
contexts
Fixes:
- Fixed patch applying to pager
- Fixed animation of disappearing views
- Fixed black screen and state saving after detach in video-custom
- Fixed black screen at the end of playback after onPause
- Fixed
VariableController
potential memory leaks
Fixes:
- Fixed cursor offset in
DivInput
- Deserialization optimization
Additions:
disappear_actions
is now supported- Added a new
video
component
Additions:
- Added
pause_actions
andfatal_actions
todiv-video
Changes:
- Combined
stream
andvideo
source types indiv-video
Additions:
- Supported
DivVideo
Fixes & Changes:
- Fixed center alignment of elements with margins in containers
- Rolled back of
DivCustomContainerViewAdapter
- Fixed double closing of
DivStorage
database on cards removing - Extended API of
DivPlayer.Observer
- Fixed array validation at JSON parsing
Additions:
- Supported
DivVideo
Updates:
- Optimized
rewriteTemplateVersions
- Added
input
valdator
- Moved
input
mask'sraw_text_variable
into the basemask
Fixes:
- Fixed crash at hardware accelerated bitmap animation
- Fixed binding indicator with pager within gallery items
- Fixed various DivStorage concurrency issues
- Fixed various currency input mask issues
- Removed metal, selecting feature flags
- Supported getValue functions
- Supported stretch parameter for DivImage
Additions:
- Supported expressions in
tabs
title - Added
currency
mask for theinput
Fixes:
- Fixed
select
sizes, paddings and other size-related properties - Fixed
select
hint
show logic to match other platforms - Fixed several cases with incorrect json processing (color is not a string, etc)
- Changed
actions
withouturl
processing logic to match other platforms (previusly they was ignored as incorrect) - Fixed
input
cursor logic for the Safari (for the iOS in partucular)
Additions:
- Added overload for variable set functions
- Added
DivVideo
implementation - Added
DivSelect
implementation - Added currency mask
- Added
DivCustomContainerViewAdapter
withDivStatePath
propagation to implementations - Support
raw_text_variable
for masks
Fixes:
- Fixed generator creating optional fields with validators when not needed
- Fix cards feed size in demo-app
- Fixed image loading race condition
Additions:
- Added video block implementation
Additions:
- Added
div-video.json
to schema - Actualized supported features on Android
Additions:
- Added the ability to stretch background images without saving aspect ratio
- Added
z-order
modes forvideo-custom
Fixes:
- Fixed redundant re-measurement in an overlapping container
- Fixed incorrect name of the
Linear Layout
class in accessibility mode - Fixed deletion and insertion bugs in
fixed_length
input masks - Added workaround for bug in
View.isLaidOut
Additions:
- Implemented
select
component
Additions:
extensions
support- SizeProvider extension
- Lottie extension
- Implemented
select
component - Implemented an
input
mask
for a text with a fixed number of characters
Fixes:
- Fixed markup update after
url
change in theaction
- Fixed size-related properties of
input
(paddings
,border_radius
,letter_spacing
and others), previously they incorrectly depended on thefont_size
property
Additions:
- Added stretch image scale type
- Added div-select.json to schema
- Added currency mask schema
Changes:
- Moved raw_text_variable to input mask
- Updated
platforms
field in schema
Additions:
- Implemented wrap_content constrained size for gallery items
- Implemented stretch image scale type
- Implemented aspect-based height for vertical and horizontal containers
Fixes & Changes:
- Fixed base sizes for wrap_content constrained in linear container
- Skip paddings when content does not fit into container
- Allowed DivCustom childView creation from any thread
- Disabled incorrect child height warning when aspect-based size is defined
- Improved DivImage preview performance
- Fixed error counter breaking overlap container with match_parent height
- Fixed expression evaluation cache
- Fixed linear container accessibility
- Removed TemplateSupport module.
Additions:
stretch
image scale type- Ability to build custom DivKIt lib with a limited set of components and disabled expressions
Fixes:
no_scale
image scale type should now work properly
Changes:
- Changed Int to Long
Fixes & Changes:
- Removed selection input schema
- Updated
platforms
field in schema
Additions:
- Implemented aspect height in wrap container
Fixes & Changes:
- Made gallery scroll slower
- Removed observers in clearBinding method
- Fixed visibility animations on disappear
- Fixed triggering changes after variable declaration
Additions:
- Added aspect support for vertical wrap container
Fixes & Changes:
- Made solid and gradient background behaviors the same
- Made initializer for gradient failable
- Passed elements errors in DeserializationResult for templates
- Replaced fatalError with assertionFailure where possible
- Removed selection input implementation
Fixes:
- The
aspect
property in thecontainer
should work better in combination with theheight
property
- Added raw_text_variable for div_input
- Added new keyboard type
Breaking changes:
- Changed Int to Long
- Inherit Div2View from FrameContainerLayout
Additions:
- Added new keyboard type
- Added getValue functions
- Added size_provider extension
Fixes & Changes:
- Replaced DivSnappyRecyclerView with DivRecyclerView + PagerSnapHelper
- Optimization AND expression
- Opt-in primary constructors of div models
- Fixed crash on set_state in trigger actions
Additions:
- Added new keyboard type
Fixes & Changes:
- Increased support version for iOS to 11
- Increased size of Integer
- Removed selection input method into DivInput
- Renamed base modules
- Fixed string arrays parsing
- Fixed DivGallery actions handling
- Fixed CFString parsing
- Fixed shimmer-view block reuse
- Fixed constrained logic in wrap container
Breaking changes:
- The
setVariable
/GetVariable
methods have been removed (these methods were deprecated long time ago before opensource, in web version 1.11.0) - DivKit now uses
BigInt
internally if it is supported by the current platform. This also means that variable methods such assubscribe
can now returnbigint
values instead ofnumber
(and accept such values in json).integer
values in expressions are now limited to 64 bits instead of 32, and the minimum/maximum value forinteger
variables has been changed. Note that outside of expressions, DivKit restricts values to 32-bit integers, as was the case in previous versions. Also note that the js builtin methods, such asJSON.parse
, return a simplenumber
, so these values may lose accuracy outside the logic of DivKit. Make sure that your values are in the range-2^53 — 2^53
or a custom json parsing function is used
- Added new keyboard type
Additions:
- Added cache for expressions
Fixes:
- Fixed concurrent modification exception in div storage
- Fixed IndexOutOfBoundsException in DivGallery
- Fixed declaration of new local variables
- Fixed scroll view for demo-app
- Added overflow parameter support in actions for DivTabs
- Allowed zero duration
- Removed missing template field warning
Additions:
- Added format date function
- Added trigger logging
Fixes:
- Fixed image preview
- Fixed ripple animation duplication
- Fixed alignment in
DivGallery
- Added
overflow
parameter support indiv-action
forDivPager
navigation. - Fixed constrained element size calculation inside
DivContainer
. - Fixed
MetalImageView
images rendering.
Additions:
toUrl
/toColor
functions
Additions:
- Sampling for div-blur
- Masks for div-input
- Cache for evaluated expressions
Fixes and changes:
- fixed image binding perfomance
- added
selection
input method intoDivInput
. - added error level into
externalLogger
. - fixed
DivImage
layout trait check.
Additions:
- Functions for getting
datetime
components - Functions for getting value of a variable, if it exists.
getStringValue
,getIntegerValue
, etc
Fixes and changes:
timers
ticks should now be more accurate and reliable. Time intervals would correct time error, there is also an extra tick before end the duration if the ticks doesn't trigger in timevisibility_action
actions will now evaluate expressions on the trigger, and not when the creating the component
Added:
- Added
shimmer
extension - Supported
aspect ratio
inoverlap container
- Supported min/max sizes for containers with
wrap_content constrained
size
Fixes:
- Fixed
timers
in Div2View inside RecyclerView - Fixed
ellipsize
containing image span - Fixed
focus
whenaccessibility
is turned on - Fixed
transition animations
instate layout
Added:
- added
images
support forellipsis
in DivText
Fixes:
- fixed alignment inside wrap DivContainer
- fixed views reuse in DivContainer
- fixed concurrency issues in DivTriggersStorage
- fixed transition animations inside DivGallery/DivPager
Added:
aspect
support forcontainer
(aspect-ratio
css property support is required!)
Fixes:
- Updated missing function error text, to better match other platforms
- Fixed error in
gallery
after destroy - Fixed element
wrap_content
sizes withconstrained
ingrid
- Fixed algorithm of
indicator
attach to specifiedpager
- Fixed accessibility type binding for
gallery
- Fixed NPE in
DecodeBase64ImageTask
- Fixed corners in
DivIndicator
- Fixed wrapped
DivContainer
layout
- Added support of
max_size
property - Added support of
wrap_content
size with constraints - Added border to indicator
- Added sharing non-local variables between contexts
- Fixed filters not being applied to image preview
- Fixed visibility change of gallery items
- Added SizeProviderExtensionHandler
- Added plus operator support for strings
- Fixed last tick action in DivTimer
- Fixed text selection in DivInput
- Fixed multithreading in DivVariableStorage
- Added time interval functions
- Added support of shape properties to slider
- Added functions for DateTime
- Fixed
padStart
/padEnd
functions
Added:
indicator
can now be rendered in two ways,placement
field is now supportedindicator
can now have a border inside every point, shape objects have been updated to supportbackground_color
andborder
properties. Several fields inindicator
are now deprecated, includingspace_between_centers
,inactive_item_color
,active_item_color
,shape
andactive_item_size
. Shape objects support inslider
was also updated
Fixed:
padStart
/padEnd
now will work properly with an emptypad_str
argument- Default
width
match_parent
should work more predictable in rare cases separator
andline_separator
incontainer
now will not block clicks and other events on component and it's descendantsconstrained
size logic in rare cases
- Added
div-shape-base
todiv-circle-shape
- Added support of timers
- Added
div-indicator
style based ondiv-rounded-rectangle-shape
- Added subscription to image preview changes
- Fixed border clipping in transition animations
- Fixed patch application to child of container with id
- Added
ShimmerImagePreviewExtension
- Added
aspect
size support inDivContainer
- Added batch actions handling,
DivActionURLHandler.UpdateCardAction
refactoring
Fixed:
image
preview size and filters supportgallery
arrows on the desktop should now appear faster
- Speed up object walking in several operations
- Added
aspect
in div-container - Added
background_color
andstroke
in div-rounded-rectangle-shape
- Added extension for Rive animations
- Added function to get time component from datetime
- Fixed layout of linear container children with match parent size
- Fixed background blur radius updating by variable
- Added border in DivIndicator
- Added minSize/maxSize for constrained elements
- Added CustomImagePreviewExtensionHandler
- Added errors view in DivKit Playground
Fixes:
- Fixed
tint_color
update for Safari
- updated translations
- Fixed baseline alignment in linear container
- Fixed minor layout issues
- Fixed rare crash when animating not laid out view
- Clear warnings after setting new data to
Div2View
- Added functions for time intervals
- Added
padStart
,padEnd
functions - Added stretching
DivIndicator
support - Fixed temporary param in
set-state
action - Fixed
DivSlider
thumbs - Fixed
nowLocal
function
Added:
min_size
/max_size
for thewrap_content
size- Functions
padStart
/padEnd
- Functions for time intervals
Changed:
- Allow
wrap_content
size for thegalleries
on the main axis - Fixed
timers
start with incorrect values
- Added
timers
support
- Removed warning about element's wrong size in case when it doesn't affect its parent size
- Added
timers
support
- Added
timers
support - Added customization of the link protocols that should be rendered as native link (
builtinProtocols
)
- Updated gradle wrapper to version
7.6
- Added tapjacking protection
- Added separation of
wrap_content
andwrap_content constrained
logic
- Updated gradle wrapper to version
7.6
- Added backgrounds for ranges of text
- Added cache for background spans
- Added implementation of wrapping list control to single item for accessibility
- Removed redundant layout steps in gallery
- Added custom for rive animations
- Added memoization for image placeholders
Added:
mix
property for a custom class namecustomization
render property for a desktopgallery
Fixed:
- Incorrect
container
spacing withseparators
- Added Min/max sizes in schema
- Added type=list to accessiblity
- Changed command format for timers
- Added border support to div-customs
- Added accessibility hint and mode subscriptions
- Fixed state patches
- Fixed exta actions bind
- Fixed linear layout params
- Removed module com.yandex.div:div-core-views. Classes moved to com.yandex.div:div
- Removed Div2Context#div2Component. In order to update global variables use Div2Context#globalVariableController
- Log and Assert is internal now. Use DivKit class methods in oder to toggle logging and assertions
- Added backgrounds for ranges of text
- Optimize escaping in expression resolving
- Fixed getting preview from url starts with data:image/png;base64
Added:
background
andborder
for thetext
rangesbaseline
vertical alignment
Fixed:
- Background redraw on variables change (with additional conditions)
- CSS names conflict on production build, now css classes are longer
- Artifacts near conrers, if both radius and stroke are used
- Updated
image
preview / placeholder logic - Fixed
tint_mode
=multiply
to better match Android logic
- Added indicator items stretching mode
- Added baseline alignment in wrap container
- Fixed patch applying
- Fixed crash on invalid patch field
- Fixed blur when radius is 0
- Fixed redrawing after blur radius changed
- Fixed slider failure.
- Fixed height for linear container
- Fixed line height in wrap container
- Added baseline alignment in linear container
- Added blur and tint mode support
- Added baseline alignment in DivContainer
- Improved DivErrorsStorage
- Added
div-timer
- Added zero blur radius support
- Added
border
andbackground
for text range
- Align elements in wrap container rows by default
- Added generated method to apply patch
- Fixed expressions serialization
- Fixed shadows in DivGallery
- Added separators support in DivContainer
- Added
div-blur
anddiv-blur-background
- Added
baseline_alignment
todiv-container
- Added blur implementation
- Added extensions unbind for DivCustom
- Added static method for version name
- Added hyphenation support for DivText with custom ellipsis
- Fixed DivCustom behaviour in regression tests
- Fixed overlap DivContainer children size measure
- Fixed applying paths in Playground
- Fixed missing ellipses
- Open url if DemoActivity opened from intent
- Added image blur implementation
- Added separators support in DivContainer
- Fixed DivPager last page layout
- Fixed overlap DivContainer children size measure
- Fixed memory leak in PinchToZoomExtensionHandler
- Fixed screen capture for web preview
Additions:
- Added
setTheme
instance method filters
(onlyblur
is supported so far) implemented for theimage
and image background
Fixed:
Enter
handling in multiline input
- Synchronized version number with DivKit version
- Added
tint_mode
for images indiv-text
- Added circle shape
- Implemented Nine-patch background
- Implement separators in wrap container
- Implemented tint_mode for images in div-text
- Fixed applying patches in demo app
- Fixed escaping symbols processing in expressions
- Fixed expression result convertion for string properties
- Updated Lottie dependency to 3.5.0
- Added Lottie prefetching
- Combined video and images prefetching
- Supported nested ternary operator
- Added rendering time in Playground
- Fixed pager state change behavior
- Fixed Lottie animation strarting
- Fixed escaping symbols processing in expressions
- Fixed animations for div-text
- Added
circle
shape support - Supported
no_animation
andnative
values for theaction_anmation
- Supported
tint_mode
- Added Nine-patch background
- Added separators in linear layout
- Fixed text style change after slider position change
- Fixed invalid view visibility on change state
- Fixed gallery pages position
- Fixed attaching pager indicator
- Added text gradient support
- Implemented Nine-patch background
- Fixed animation traits
- Implemented Nine-patch background
- Supported for the
selected_actions
inpager
- Fixed color values convertion
- Added
cross_spacing
support for gallery - Added
tint_mode
fordiv-image
- Added separator in DivContainer
- Added circle shape to schema
- Updated description for
longtap_actions
anddoubletap_actions
Additions and changes:
- Implemented support external theme in DivContext
- Implemented
tint_mode
for DivImage - Implemented
cross_spacing
for Gallery - Implemented
wrap_content_constrained
- Added divider between elements in container to schema
- Added avoid creating
DivBorderDrawer
if it will not used - Added show warning on
wrap_content
container withmatch_parent
child size Fixes: - Fixed list of expressions generating
- Added
cross_spacing
support in DivGallery. - Added radial gradient support.
- Improved
match_parent
items behaviour in DivContainer and DivGallery. - Fixed invisible items size.
- Fixed actions handling in Sample app.
Additions:
- Support for the
wrap
layout mode in acontainer
- Support for the
cross_spacing
property ingallery
doubletap_actions
andlongtap_actions
are now supoorted in actionable components- Support for the
appearance_animation
inimage
- Support for the
restrict_parent_scroll
property intabs
,gallery
andpager
- Root states are now properly supported Changes and fixes:
- Updated the
wrap_content
logic, this would lead to a different layout in some corner-cases - Boolean values from exressions are now correctly converted to the string
false
/true
in thetext
block - The layout of the
slider
has been changed to sync with other platforms, now the text offset will not change the size of the component. Also now there may be more than 20 ticks - Updated color functions according to the latest changes. Now several of them would return the type
color
instead ofstring
(rgb, rgba, setColorRed and others) - Components will now correctly unregister when destroyed, so recreated elements will work properly (for example, actions to change the current element in the gallery, nested state elements and others)
- Fixed logic of expression processing Previously, if a string was considered an "expression", it was processed as it, otherwise it would be used as a simple string. But sometimes this check worked incorrectly and processed expressions as a string. This is now fixed. It also means that some strings will now require proper escaping, so be sure to check this in your project (previously,these strings "just worked" without escaping because they were not treated as expressions)
- Now elements with custom actions can be focused, as it was with simple URLs. This would result to better accessibility in such cases (these elements also accept the keyboard input!)
- Fixed the visibility of the
gallery
arrows on desktops in several cases - Fixed a case where
transition_in
,transition_out
andtransition_change
incorrectly discarded thealpha
component property - Component actions will now wait for the result of each of them. This means that you can create an array using 2 actions: one to change the state, and the second to change the created component inside the state
Additions and changes:
- Implemented alignments in
WrapLayout
- Implemented radial gradient
- Implemented warnings on slider ticks overlap each other
- Implemented visibility transition support
- Allow patch multiple view with same id
Fixes:
- Fixed Lottie extension params parsing
- Clarification of wrap container documentation
- Added radial gradient schema
Additions and changes:
- Implemented
WrapLayout
- layout with transfer of elements to the next line if they don't fit in the previous one - Implemented showing of rendering time in demo activity
- Improved snapshot tests Fixes:
- Fixed concurrent modification of variables
- Fixed
tint_color
observing on element's rebind - Fixed lottie resources providing for tests
- Added Swift Package Manager support
- Fixed concurrency issues in
DivStateManager
andDivVariablesStorage
- Improved
DivContainer
height calculation - Improved snapshot tests
Added:
radial_gradient
support
Additions and changes:
- Added image change subscription
- Moved
observeTintColor
intobind
method - Refactored
DivBorderDrawer
- Parsing patch from JSON
- Changed host tag
- Disabled bind on attach
- Implemented replacing of link or json when paste from buffer in demo-app
- Supported
true
/false
literals into variables - Bind
input
type for accessibility Fixes: - Fixed regression screen at release builds of demo-app
- Fixed image blinking on rebind
- Fixed text alignment in
input
when rtl enabled - Fixed extensions reuse
Additions and changes:
- Added
true
/false
values support inset_variable
actions - Added
wrap
mode in DivContainer - Added interactive snapshot tests
- Improved public API
- Improved dark mode in DivKit Playground
- Updated bool values parsing in set_variable actions Fixes:
- Fixed transition animations
- Fixed DivContainer error messages
Additions and changes:
- BooleanInt props now accepts booleans too
- Implemented boolean values for boolean variables
- Reworked
container
layout - Added package tests
- Downgraded
babel-preset-jest
, so it is possible to run divkit tests with an older version of the node.js Fixes: - Fixed zero-values in
action_animation
- Fixed
grid
recalculation - Fixed layout of
pager
child elements when their size is too small
Addition:
- Implemented flags for hash files
Additions and changes:
- improve actions binding
- cover generator with tests Fixes:
- use public gradle distribution url
- Added test data into DivKit Playground
- Added color themes support in DivKit Playground
- Added DivInput tests
- Improved public API
- Fixed DivInput keyboard behavior
- Fixed boolean values serialization
Addition:
transform
is now supported for thebase
component
Additions and changes:
- Supported rotation transformation
- Switched to new API Generator Fixes:
- Fixed build configuration
- Added LottieExceptionHandler
- Added focus support in DivInput
- Renamed DivKit Demo to DivKit Playground
- Fixed DivData states transition
- Fixed visibility actions for transitioning blocks
- Fixed text alignment in DivInput
- Fixed camera initialization in DivKit Playground
- Improved parseDivData methods in DivKitComponents
- Improved Sample app
- Updated
input
to sync with the schema, also fixedtext_color
and height - Fixed the behavior of
transition_in
/transition_out
(when to start and when not to start animation) - Fixed the default value of
variable_trigger.mode
Fixes:
- Minor fixes in documentation
Changes and additions:
- Added code samples to sample app
- Added README
- Minor UI tweaks in Playground app
Changes and additions:
- Added sample app
- Supported
alignment
,max_visible_lines
andselect_all_on_focus
fordiv-input
- Minor UI tweaks in Demo app
- Text selection in
div-input
can be cleared by tap to outside area
Fixes:
- Fixed scale animation with zero factor
- Fixed text selection in multiline inputs
Changes and additions:
- Messages of expression parsing errors made more informative
Changes and additions:
- Added translations for property descriptions
max_lines
renamed tomax_visible_lines
Changes and additions:
- Redesigned demo activity in Playground app
- Removed unnecessary permissions for Playground app
- Removed theme setting from Playground app
- Updated Playground app icon
- Added sample app
Fixes:
- Fixed flickering during video loading
Changes and additions:
text_variable
,highlight_color
andkeyboard_type
support in DivInput- Demo app refactoring and redesign
Fixes:
- Fixed
action_animation
on iOS
Fixes:
- Fixed serialization of overloaded template properties