Releases: bluelinelabs/Conductor
4.0.0-preview-4
What's Changed
- Fix issue with child controllers frozen at detach time not re-attaching
Full Changelog: 4.0.0-preview-3...4.0.0-preview-4
4.0.0-preview-3
What's Changed
- Fix ConcurrentModificationException when manipulating backstack during instantiation by @EricKuck in 4d4d8bf
Full Changelog: 4.0.0-preview-2...4.0.0-preview-3
4.0.0-preview-2
Conductor 4.0's second public preview
Updates from preview-1
- Removed LifecycleController and merged lifecycle support into the main Controller class
- Activity-hosted Routers now default to
PopRootControllerMode.NEVER
, which has always been the suggested setting. - Removed first-party support for AutoDispose
- Added a back handling demo to the demo app
Predictive back opt-in updates
Changes needed to fully support predictive back gestures in your app:
- Call
setOnBackPressedDispatcherEnabled(true)
on your Activity's Router. - Remove the override of
onBackPressed()
from the Activity. No replacement is needed. - Opt in to predictive back gestures in your manifest file as shown here.
- Replace any override of
handleBack()
, which is now deprecated, with an OnBackPressedCallback. Example callback:
onBackPressedDispatcher?.addCallback(lifecycleOwner, object : OnBackPressedCallback(enabled = true) {
override fun handleOnBackPressed() {
println("back handled")
}
})
4.0-preview-1
Conductor 4.0's first public preview
Conductor 4.0 is coming soon. It is already being used in production with many, many millions of users. It is, however, not guaranteed to be API stable. As such, it is being released as a preview rather than a standard release. Preview in this context is not a commentary on stability. It is considered to be up to the same quality standards as the current 3.x stable release.
Other than some Kotlin migrations and dependency updates, there are two primary changes in this release:
Support for predictive back gestures
This is an opt-in change. If no changes are made in your codebase, you shouldn't experience any functionality changes.
Changes needed to fully support predictive back gestures in your app:
- Call both
setPopRootControllerMode(PopRootControllerMode.NEVER)
andsetOnBackPressedDispatcherEnabled(true)
on your Activity's Router. - Remove the override of
onBackPressed()
from the Activity. No replacement is needed. - Opt in to predictive back gestures in your manifest file as shown here
- Replace any override of
handleBack()
, which is now deprecated, with an OnBackPressedCallback. Example callback:
// "this" must be a LifecycleOwner
onBackPressedDispatcher?.addCallback(this, object : OnBackPressedCallback(enabled = true) {
override fun handleOnBackPressed() {
println("back handled")
}
})
AndroidX backing
This is an opt-out change, and is enabled by default. Conductor has historically relied on platform Fragments to receive lifecycle events. This has resulted in a few shortcomings as functionality has been added to AndroidX Fragments, but is only available in newer API versions for the platform versions. Conductor will now automatically use AndroidX backing under two conditions: your Activity extends FragmentActivity and allowExperimentalAndroidXBacking = false
is not passed into the Conductor.attachRouter
method.
3.2.0
3.1.9
3.1.8
Full Changelog: 3.1.7...3.1.8
3.1.7
What's Changed
- Fix NPE when removing view reference by @MarioNoll in #678
Full Changelog: 3.1.6...3.1.7
3.1.6
3.1.5
What's Changed
- Fix issue where child controllers may not get their onPause event soon enough by @EricKuck in #672
- Set awaitingParentAttach to false on detach, even if not currently attached by @EricKuck in #673
- Fix edge case NPE when the user hits the back button very rapidly during state restoration by @EricKuck in #674
Full Changelog: 3.1.4...3.1.5