- Update coroutines to 1.5.0
- Add a BOM for unified dependency versions (#219)
- Fix permanent cancellation when using withViewLifecycleScope (#236)
- CoroutineTestExtension now creates a new scope instance for each test.
- Update Kotlin to 1.5.0
- Update coroutines to 1.4.3
- Update Android Gradle Plugin to 4.2.0
- Update Androidx Lifecycle to 2.3.1
- Update to coroutines to 1.4.1 in order to fix an issue with SharedFlow(#189)
- ViewLifecycleCoroutineScope is a special DispatchLifecycleScope meant for binding a scope to a Fragment's view lifecycle. (#179)
- Make testProvided receive TestProvidedCoroutineScope (#157)
- LifecycleCoroutineScope has been renamed to DispatchLifecycleScope, along with its extension function. The old names are still functional with a deprecated typealias. They will be removed in the future. (#186)
- CoroutineViewModel has been renamed to DispatchViewModel. The old names are still functional with a deprecated typealias. They will be removed in the future. (#186)
- Use currentCoroutineContext to resolve the inner CoroutineContext in
flowOn___
functions. (#181)
- Set the project JDK target to 8. This only affects the build environment since all previous builds were done on a JDK 8 machine. (#187)
- Coroutines has been updated to 1.4.0 (#183)
- Detekt has been updated to 1.4.2 (#184)
- JUnit5 has been updated to 5.7.0 (#178)
- DefaultDispatcherProvider is now a mutable singleton which allows for a custom global default.
- CoroutineTestExtension will now properly call
Dispatchers.setMain(...)
when injecting a CoroutineScope into a function or when not injecting at all. (#130)
- LifecycleCoroutineScope will now be automatically cancelled when the associated Lifecycle drops to the Destroyed state. (#135)
- Cached LifecycleCoroutineScopes will now be removed from the cache when they are destroyed. (#136)
- Fixed a race condition where multiple LifecycleCoroutineScopes may be created for concurrent cache misses. (#136)
- The DefaultDispatcherProvider class constructor has been changed to an object factory function
(
operator fun invoke(): DispatcherProvider
) and deprecated. This function will be removed prior to the 1.0 release.
- DefaultDispatcherProvider has been changed from a
class
to anobject
, and its functionality changed. It is now a singleton holder for a defaultDispatcherProvider
instance. To create a defaultDispatcherProvider
, use the interface's companion object factory function (DispatcherProvider()
).
- The project has been renamed from DispatcherProvider to Dispatch.
- Maven coordinates for existing modules have changed.
- The base Maven coordinate has changed from
com.rickbusarow.DispatcherProvider
tocom.rickbusarow.dispatch
. - Base package names have been updated.
- dispatch-android-espresso adds support for IdlingResource dispatchers in Espresso testing.
- dispatch-android-lifecycle adds an alternative to the
Androidx LifecycleScope functionality, with lots of configuration
options.
- dispatch-android-lifecycle-extensions adds the lifecycleScope extension property, but with a configurable factory (useful for Espresso testing).
- dispatch-android-viewmodel adds an alternative to Androidx viewModelScope with configuration options.
- dispatch-detekt adds Detekt rules to warn against accidentally using a hard-coded CoroutineDispatcher.
- dispatch-test-junit4 adds a JUnit4 Rule for automatically providing and cleaning up a TestProvidedCoroutineScope.
- dispatch-test-junit5 adds JUnit5 Extension support for automatically providing and cleaning up a TestProvidedCoroutineScope.
- Added
TestBasicDispatcherProvider
factory which usesCommonPool
fordefault
andio
, but a shared single-threadedExecutorCoroutineDispatcher
formain
andmainImmediate
to provide " natural" dispatch behavior in tests withoutDispatchers.setMain(...)
.
runBlockingTestProvided
now uses the sameTestCoroutineDispatcher
as itsContinuationInterceptor
and in itsTestDispatcherProvider
(#15).runBlockingProvided
now usesTestBasicDispatcherProvider
as itsDispatcherProvider
.
- Add non-suspending
flowOn___()
operators for theFlow
api.
- Lots of Kdocs.
- Maven artifacts.
- Lower JDK version to 1.6