SDK Guides
Kotlin

Release Notes: Kotlin v4.5

Kotlin Version 4.5.4

Fixed

Intermittent crash when syncing over Bluetooth LE GATT with "DataTooLarge" error (#9789)

Added

Additional logging in the rare case an exception is thrown during a live query callback. (#11644)

Kotlin Version 4.5.3

Fix

  • A crash in Android bluetooth subsystem (#11467)

Kotlin Version 4.5.2

Added

  • DittoTransportConfig and all Ditto types that appear inside a DittoTransportConfig now implement Cloneable (#10972)

Fixed

  • Calling startSync, then stopSync, and then startSync again no longer leads to all transports being disabled (#10972)
  • If using an OnlinePlayground or OnlineWithAuthentication identity with enableDittoCloudSync set to true then a WebSocket connection to Ditto's cloud will now be preserved if/when the Ditto instance's transport config is updated. (#10972)

Kotlin Version 4.5.1

Added

  • Support for light JWTs (separating identity data)

Fixed

  • A potential panic if an f64::Nan is compared to a u64 or i64 during collation
  • Presence observers are now correctly removed when passed to removeObserver()

Kotlin Version 4.5.0



Added

  • VERSION static property to the Ditto class. (#10223)
  • DittoError.FatalError data class. (#10536)
  • DittoStore.execute() method for querying the store using the new Ditto Query Language. (#8354)
  • DittoSyncSubscription class for managing sync subscriptions. (#8354, #10536)
  • DittoSync class whose registerSubscription() method allows for controlling sync using Ditto Query Language. (#8354, #10536)
  • registerObserver() method to the DittoStore class. (#8354, #10536)

Deprecated

  • DittoLanConfig.multicastEnabled property. (#10126)
  • DittoError.InternalErrorReason data class. These very unlikely exceptions will be thrown as FatalError instea. (#10536)

Changed

  • Failure to load the Ditto native binary now throws a FatalError instead of aborting the process. (#10015)
  • DittoError.FailedToEncodeValue.error has been replaced with FailedToEncodeValue.message which is a simple string type, reducing API dependency on Jackson/FasterXML. (#10536

Improved

  • Performance by implementing bipartite distance-aware mesh topology. (#10632)
  • Memory usage and performance of Documents. (#10736)
  • Reduced metadata accumulation after eviction by clearing remote summaries. (#7065)
  • Serialization performance. (#9112)

Fixed

  • The Android log level could not be set to a more verbose level at runtime under certain circumstances. (#10786)
  • LAN P2P transport fails to stop. (#8809)
  • Made logging more robust to failed writes in a specific set of circumstances. (#10077)
  • Addressed a warning from SQLite that sometimes occurs on startup about a schema change. (#10501)
  • Presence graph may not show all active connections. (#10507)
  • When observing peers, isConnectedToDittoCloud property may be incorrect. (#10534)
  • initial logging events now use the same format as all other logs. (#10611)
  • mesh could choose random connections. (#10711)
  • A bug with Ditto's internal crash handler. (#10022)