Releases: divkit/divkit
Releases · divkit/divkit
30.3.0
Android Client:
- Fixed sizes calculation for
gallery
items
wrapped withincontainer
. - Added
tab_title_delimiter
property support fortabs
. - Remove focus from focused
input
if some clickable div were clicked. - Removed
z
/Z
patterns restriction from datetime formatting functions. - Added
max_length
property support forinput
. - Fixed crash by
gallery
when count ofitems
was less thencolumn_count
. - Supported
font_feature_settings
property fordiv-text
. - Fixed line height calculation when range line height smaller than text one.
iOS Client:
- Fixed items position in
gallery
. - Supported
font_feature_settings
property fordiv-text
. - Removed
z
/Z
patterns restriction from datetime formatting functions. - Fixed clipping in
container
.
Web Client:
- Fixed an issue with the
text
propertytop_offset
and ranges intersection. - Added new API's for the extensions:
processExpressions
andexecAction
. - Added
gesture
extension. - Fixed an issue with calling
disappear_actions
after instance destruction. - When passing
data
directly insideitem_builder
, its expressions are no longer executed. - Supported
z
/Z
patterns in datetime formatting functions. - Added
max_length
property support forinput
. - Supported
font_feature_settings
property fortext
. - Updated error messages for invalid calls inside expressions.
30.2.0
Android Client:
- Fixed line height adjustment for embedded images and image placeholdes in
div-text
. - Added padding on draw
default_item
ingallery
. - Improved expression error messages.
iOS Client:
- Fixed disappear actions for gone blocks.
- Improved expression error messages.
Web Client:
- Calculate
is_enabled
inactions
before executing the entire list of actions, not in the process. - Implemented
toString
function and method for arrays and dicts. - Improved expression error messages.
- Fixed unary minus operator parsing.
- Added functions
parseUnixTimeAsLocal
,formatDateAsLocal
,formatDateAsUTC
,formatDateAsLocalWithLocale
,formatDateAsUTCWithLocale
and theweekStartDay
parameter.
30.1.0
30.0.0
Android Client:
- Breaking change: Classes
StandardExoDivPlayerView
andZoomExoDivPlayerView
replaced with commonExoDivPlayerView
- Breaking change: Classes removed from public API:
ExoDivMediaSourceAbstractFactory
,ExoDivPlayer
(accessible by interfaceDivPlayer
),ExoDivPlayerView
(accessible by interfaceDivPlayerView
) - Breaking change: Removed method
isCompatibleWithNewParams(scale: DivVideoScale)
fromDivPlayerView
- Breaking change: Removed method
makePlayerView(context: Context, additional: Map<String, Any>)
fromDivPlayerFactory
- Breaking change: Use explicitly passed
ExpressionResolver
inDivActionHandler
,Div2Logger
,DivExtensionHandler
andcustom
classes. - Breaking change: Restricted variable names with consecutive dots and with a trailing dot.
- Added
gesture
extension that allows to perform div-actions when swipe gesture happens at specified div. - Added
item_builder
property support in thecontainer
component. - Added
svg
support to allDivImageLoaders
- Added ability to forcibly release video players by
releaseMedia()
method ofDiv2View
. - Added Jetpack Compose interoperability for
Div2View
- Calculate
is_enabled
inactions
before executing the entire list of actions, not in the process. - Do not set new border or background when it has no changes.
- Fixed text height calculation when line height specified explicitly.
- Fixes for complex rebind algorithm
- Old visibility actions are no longer logged after Div2View was rebound.
- Supported methods in evaluable expressions, such as
123.toString()
. - TextureView is now a default view for DivVideo.
iOS Client:
- Breaking change: Changed method signature in
ExpressionResolver
fromresolveString(_ expression: String) -> String
toresolveString(_ expression: String) -> String?
. - Breaking change: Protocol
DivStateInterceptor
and corresponding implementationDivStateInterceptorImpl
was removed. Please useDivExtensionHandler
instead. - Breaking change: public API for
DivActionURLHandler.updateReason
has been changed. - Breaking change: Removed
DefaultDivActionLogger
(replaced withEmptyDivActionLogger
).DivActionLogger
became deprecated, useDivReporter
for actions tracking. - Breaking change: Removed
DefaultShimmerViewFactory
. - Breaking change: Removed
DivVariablesStorage.ChangeEvent.oldValues
due to performance issues. - Breaking change: Removed
urlOpener
argument fromDivKitComponents
initializer. UseurlHandler
instead. - Breaking change: Removed
UserInterfaceAction.Payload.composite
. - Breaking change: Removed
UserInterfaceAction.Payload.json
. - Breaking change: The signatures of the setSource functions have been changed: they are now marked as async to reduce main thread locks.
- The minimum version of the DivKit has been increased to iOS 13.
- Disallowed variable names with consecutive dots or with trailing dot.
- Double quotes are no longer supported in string literals.
- Fixed animation in gallery.
- Fixed numbers to string casting in expressions.
- Fixed position of gallery element after scrolling with action.
- Fixed unary minus operator parsing.
- Fixed validation in expressions.
- Fixed view reuse in
ShimmerImagePreviewExtension
.
Web Client:
- Breaking change: actions from
variable_triggers
lead to execution of a callbackonStat
with type =trigger
.
- Disallowed variable names with consecutive dots or with trailing dot.
Kotlin JSON Builder:
- Changed the way of how primitive array elements are added.
This change supports usage of expressions in array elements. As for now, primitive array elements (e.g., transition triggers, gradient backgrounds) must be
wrapped with either divkit.dsl.core.valueArrayElement
ordivkit.dsl.core.expressionArrayElement
.
29.15.0
Android Client:
- Added ability to set a specific logging level using DivKit#setLogLevel.
- Added ability to forcibly release video players by
releaseMedia()
method ofDiv2View
. - TextureView is now a default view for DivVideo.
- Replaced
String
withCharArray
at expression tokenization process. - Recreating subscriptions to local variables in case Div2View is recreated after destroying its lifecyclerOwner in order to preserve the state of local variables.
- Fixed that invalid base64 preview in
DivVideo
may causeIllegalArgumentException
. - Fixed NoSuchElementException on handling disappear actions.
- Fixed accessibility of gallery children when exclude a11y mode turned on.
- Fixed that
video
screen could show up beforepreview
was rendered. - Fixed state variable binding loop.
iOS Client:
- Removed mask from GalleryView to reduce offscreen rendering.
- Added
toString
method/function for arrays and dictionaries. - Fixed arrays and dictionaries convertion to string.
- Removed unnecessary re-creation of gestureRecognizers.
- Fixed resetting inconsistent gallery state in pager.
- Fixed allocated unfair lock in
DivBlockStateStorage
. - Added
toString(string)
function. - Added
scale
support in Lottie animation. - Added
len
function for arrays. - Fixed resetting video when
elapsed_time_variable
is not set. - Fixed pager state after reuse.
- Fixed looping of video player events.
Web Client:
- Persistent variable storage has been implemented, including the action
set_stored_value
along with the functiongetStoredStringValue
and others. - Fixed an issue with calling
disappear_actions
when destroying a component (for example, when hiding a tooltip). - Supported flag
is_enabled
forinput
. - Fixed an issue with the patch changes after the tooltip action.
- Added
toString(string)
function. - Added support for methods in expressions, including
toString
,getString
,getBoolean
,getInteger
,getNumber
,getUrl
,getColor
,getDict
,getArray
. - Added support for the
menu_items
property insideaction
s (with a additionalcustomization
propertiesmenuPopupClass
andmenuItemClass
). - Fixed an issue with the nested
longtap_actions
and simultaneousactions
andlongtap_actions
processing.
29.14.0
Android Client:
- Added implicit cast from
integer
tonumber
inside evaluable expressions. - Supported flag
is_enabled
forinput
. - Fixed
restrict_parent_scroll
to restrict both directions - Fixed reusing of view id in same Div2Context
- Added support of signed numbers in numeric
div-input
iOS Client:
- Added
toString()
method support in expressions. - Fixed ternary operator parsing.
- Added get methods for dictionaries and arrays in expressions.
29.13.0
Android Client:
- Supported loading images from assets by url
divkit-asset://
- Fixed that sometimes extensions could be removed on state change.
- Fixed a memory leak occurring when using expressions in the "alignment" fields of the
container
element.
iOS Client:
- Fixed focus setting when state changes and there are multiple inputs without id.
- Supported
is_enabled
property ininput
. - Fixed variables usage in tooltips.
- Fixed visibility action of empty container.
- Fixed crash in input with mask.
- Fixed DivVideo view reconfiguration.
29.12.0
Android Client:
- Enable android.nonTransitiveRClass.
- Supported
item-builder
property incontainer
. - Removed excessive list copy creation for thread-safe iteration.
iOS Client:
- Fixed nested expression parsing.
- Implemented new typed action
clear_focus
which removes focus from any focused view. - Improved views reuse.
- Removed
id
requirement fordiv-state
.
Web Client:
- Fixed an issue with deep
state
changes. - Implemented new typed action
clear_focus
which removes focus from any focused view. - Supported
preload_required
property for thevideo
component. - Fix timer stop in rare cases.
- Fixed an issue with the
visibility_actions
,disappear_actions
andtooltips
inpatch
es. - Fixed a bug where several
text
styles were not updated when the expression was changed. - Fixed an issue with the
tel:
schema in actions. - Minor performance optimization.
- Fixed parsing of incorrect values of
items
/states
incontainer
,tabs
andstate
.
Kotlin JSON Builder:
- Added ability to create
Patch
declaration.
29.11.0
Android Client:
- Fixed visibility recognition of pages in pager.
- Removed validation for rectangular grid layout.
- Screenshot test plugin improvements.
- Set version without build start time in debug build.
- Fixed
restrict_parent_scroll
. - Implemented new typed action
clear_focus
which removes focus from any focused view inside Div2View. - Fixed overriding of
custom
layout params.
iOS Client:
- Fixed variable names parsing.
- Add default assets image provider.
Web Client:
- Fixed a rare call to "tick_actions" after "end_actions" in timers.
- Removed validation for rectangular grid layout.
29.10.0
Android Client:
- Migrated to Gradle version catalog.
- Add div data generator plugin.
- Fixed SO at state variable change.
Web Client:
- Fixed several issues with the
tabs
component with thematch_parent
andwrap_content
heights with theconstrained
flag. - Fixed an animation issue after swipe in
tabs
component. - Fixed a small issue with rendering corners with a frame and radius.
- Supported
scroll_to_start
,scroll_to_end
,scroll_backward
,scroll_forward
,scroll_to_position
ingallery
. Updatedset_previous_item
andset_next_item
to supportstep
argument. - Supported
scroll_to_start
,scroll_to_end
intabs
andpager
. Updatedset_previous_item
andset_next_item
to supportstep
argument. - Fixed an issue with the
gallery
scroll actions and RTL layout direction. - Implicit conversion of
integer
->number
in expressions is supported.