- DateTime
- Added
Instant.toZonedDateTimeextension to convert anInstantto aZonedDateTimein a specific timezone without needing to do multiple conversions. - Added
FixedClockclass to provide a simple syntax for creating a clock with a static time. This is particularly useful in combination with the Zoned clock implementation, since an anonymous interface conversion is cumbersome to convert.
- Added
- Coroutines
- Fixed `OngoingFlow.collectOn` implementation from throwing an error
during collection.
- Coroutines
OngoingFlowconstruct for flows that do not end, along with applicable transformation operators.
- Upgrade to Kotlin 2.0.0
- Coroutines
runRetryablemethod for retrying an operation with optional delay strategies such as exponential backoff.whenTrueextension for collecting a flow only when a value is true.
coroutinesmodule now depends on thestandardmodule for its API.
- New Module:
com.inkapplications.watermelon:data- Added module for common data abstractions and structures
- Added Data Transformer construct to data module for bidirectional data conversions.
- Added Data Validator construct for verifying arbitrary data values.
- New module:
com.inkapplications.watermelon:datetime- Added module for extensions to the kotlinx.datetime libraries.
- Add a
ZonedDateTimeobject for associating aLocalTimeandTimezonetogether. - Add a
ZonedDateobject for associating aLocalDateandTimezonetogether. - Add a
ZonedTimeobject for associating aLocalTimeandTimezonetogether. - Add a
ZonedClockinterface that provides local times.
- Coroutines
- Extend support for
combineto support up to 10 flows.
- Extend support for
- Android
Context.createNotificationBuilderSupport method for creating notification builders across android versions.
- Platform Support
- Added
linuxArm64platform support.
- Added
- Kotlin updated to 1.8.22
- Android Tools Plugin upgraded to 8.1.1
- Coroutines
combineApplymethod on flows to run applies against the current flow for each item in a new flow.
- Standard
component6throughcomponent10extensions added forArray<T>types.
- Standard
- Fixed return type for
runRetryablemethod.
- Fixed return type for
- Android
startActivityextension that references via classname and intent builder.checkSelfPermissionsextension that associates an input of permissions with their current state.setDebouncingOnClickListenerto debounce view click listeners.stopPropagation/continuePropagationextensions to run an action while returning true/false for Android's callbacks.PermissionGateconstruct to simplify required permission requests.setVisibility,fadeInandfadeOutmethods to simplify View animations.
- Coroutines
safeCollectcollector that ensures a coroutine context is active before calling its collector action.collectOnextension to simplify collection on a specified coroutine scope at call-time.mapItems,filterItems,filterItemIsInstance,filterItemNotNullextensions for manipulating collections within emitted flows.combineToPair,combineTripleandcombineFlattenextensions to simplify combining flow operations.mapItemsCatching,onItemFailure,filterItemSuccessandfilterItemFailuremethods to simplify working with collections of Results emitted by a flow.
- Standard
mapArrayandmapSetextensions to map collections preserving the type.CompositeExceptionclass to wrap multiple exceptions.throwCancelsextension on theResultclass to re-throw coroutine cancellation exceptions.retryfunction to execute a block of code multiple times if an exception is thrown.