Skip to content

Releases: divkit/divkit

30.3.0

03 Jun 14:10
Compare
Choose a tag to compare

Android Client:

  • Fixed sizes calculation for gallery items wrapped within container.
  • Added tab_title_delimiter property support for tabs.
  • 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 for input.
  • Fixed crash by gallery when count of items was less then column_count.
  • Supported font_feature_settings property for div-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 for div-text.
  • Removed z/Z patterns restriction from datetime formatting functions.
  • Fixed clipping in container.

Web Client:

  • Fixed an issue with the text property top_offset and ranges intersection.
  • Added new API's for the extensions: processExpressions and execAction.
  • Added gesture extension.
  • Fixed an issue with calling disappear_actions after instance destruction.
  • When passing data directly inside item_builder, its expressions are no longer executed.
  • Supported z/Z patterns in datetime formatting functions.
  • Added max_length property support for input.
  • Supported font_feature_settings property for text.
  • Updated error messages for invalid calls inside expressions.

30.2.0

27 May 11:00
Compare
Choose a tag to compare

Android Client:

  • Fixed line height adjustment for embedded images and image placeholdes in div-text.
  • Added padding on draw default_item in gallery.
  • Improved expression error messages.

iOS Client:

  • Fixed disappear actions for gone blocks.
  • Improved expression error messages.

Web Client:

  • Calculate is_enabled in actions 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 the weekStartDay parameter.

30.1.0

20 May 09:14
Compare
Choose a tag to compare

Android Client:

  • Fixed a bug where updates to global variables are lost if they occurred after the destruction of Div2View, but before the creation of a new one.

iOS Client:

  • Implemented operands lazy evaluation.

30.0.0

13 May 16:24
Compare
Choose a tag to compare

Android Client:

  • Breaking change: Classes StandardExoDivPlayerView and ZoomExoDivPlayerView replaced with common ExoDivPlayerView
  • Breaking change: Classes removed from public API: ExoDivMediaSourceAbstractFactory, ExoDivPlayer (accessible by interface DivPlayer), ExoDivPlayerView (accessible by interface DivPlayerView)
  • Breaking change: Removed method isCompatibleWithNewParams(scale: DivVideoScale) from DivPlayerView
  • Breaking change: Removed method makePlayerView(context: Context, additional: Map<String, Any>) from DivPlayerFactory
  • Breaking change: Use explicitly passed ExpressionResolver in DivActionHandler, Div2Logger, DivExtensionHandler and custom 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 the container component.
  • Added svg support to all DivImageLoaders
  • Added ability to forcibly release video players by releaseMedia() method of Div2View.
  • Added Jetpack Compose interoperability for Div2View
  • Calculate is_enabled in actions 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 from resolveString(_ expression: String) -> String to resolveString(_ expression: String) -> String?.
  • Breaking change: Protocol DivStateInterceptor and corresponding implementation DivStateInterceptorImpl was removed. Please use DivExtensionHandler instead.
  • Breaking change: public API for DivActionURLHandler.updateReason has been changed.
  • Breaking change: Removed DefaultDivActionLogger (replaced with EmptyDivActionLogger). DivActionLogger became deprecated, use DivReporter for actions tracking.
  • Breaking change: Removed DefaultShimmerViewFactory.
  • Breaking change: Removed DivVariablesStorage.ChangeEvent.oldValues due to performance issues.
  • Breaking change: Removed urlOpener argument from DivKitComponents initializer. Use urlHandler 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 callback onStat 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

22 Apr 15:28
Compare
Choose a tag to compare

Android Client:

  • Added ability to set a specific logging level using DivKit#setLogLevel.
  • Added ability to forcibly release video players by releaseMedia() method of Div2View.
  • TextureView is now a default view for DivVideo.
  • Replaced String with CharArray 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 cause IllegalArgumentException.
  • Fixed NoSuchElementException on handling disappear actions.
  • Fixed accessibility of gallery children when exclude a11y mode turned on.
  • Fixed that video screen could show up before preview 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 function getStoredStringValue and others.
  • Fixed an issue with calling disappear_actions when destroying a component (for example, when hiding a tooltip).
  • Supported flag is_enabled for input.
  • 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 inside actions (with a additional customization properties menuPopupClass and menuItemClass).
  • Fixed an issue with the nested longtap_actions and simultaneous actions and longtap_actions processing.

29.14.0

15 Apr 10:47
Compare
Choose a tag to compare

Android Client:

  • Added implicit cast from integer to number inside evaluable expressions.
  • Supported flag is_enabled for input.
  • 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

08 Apr 11:37
Compare
Choose a tag to compare

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 in input.
  • Fixed variables usage in tooltips.
  • Fixed visibility action of empty container.
  • Fixed crash in input with mask.
  • Fixed DivVideo view reconfiguration.

29.12.0

01 Apr 11:04
Compare
Choose a tag to compare

Android Client:

  • Enable android.nonTransitiveRClass.
  • Supported item-builder property in container.
  • 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 for div-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 the video component.
  • Fix timer stop in rare cases.
  • Fixed an issue with the visibility_actions, disappear_actions and tooltips in patches.
  • 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 in container, tabs and state.

Kotlin JSON Builder:

  • Added ability to create Patch declaration.

29.11.0

25 Mar 11:15
Compare
Choose a tag to compare

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

18 Mar 12:23
Compare
Choose a tag to compare

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 the match_parent and wrap_content heights with the constrained 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 in gallery. Updated set_previous_item and set_next_item to support step argument.
  • Supported scroll_to_start, scroll_to_end in tabs and pager. Updated set_previous_item and set_next_item to support step argument.
  • Fixed an issue with the gallery scroll actions and RTL layout direction.
  • Implicit conversion of integer -> number in expressions is supported.