Update circuit to v0.28.0 #280
Open
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
0.25.0
->0.28.0
0.25.0
->0.28.0
0.25.0
->0.28.0
Release Notes
slackhq/circuit (com.slack.circuit:circuit-codegen)
v0.28.0
Compare Source
2025-05-12
New: circuitx-navigation adding navigation interception capabilities:
We've added a new navigation intercepting system to Circuit that lets you hook into and modify
navigation before it happens. The
InterceptingNavigator
sits before a regular CircuitNavigator
,giving you a chance to inspect or change navigation events. With the
NavigationInterceptor
interface, you can handle
goTo
,pop
, andresetRoot
calls and decide if they should proceed,fail, be skipped, or be rewritten to navigate somewhere else. There's also a
NavigationEventListener
if you just want to know when navigation happens without changing it.
This new system is handy for advanced routing, blocking navigation, or tracking navigation events
for analytics.
dependencies { implementation("com.slack.circuit:circuitx-navigation:<version>") }
Docs: https://slackhq.github.io/circuit/circuitx/navigation
Misc:
Modifier
not being used inNavigatorDefaults.EmptyDecoration
rememberCircuitNavigator()
not being able to propagate the root pop as itsBackHandler
was still activerememberCircuitNavigator()
that uses aBackHandler
to triggerNavigator.pop
calls2025.05.00
.1.8.1
.1.8.0
.11
2.1.0
v0.27.1
Compare Source
2025-04-14
resetRoot
while the sameScreen
was still in the compositionAndroidPredictiveBackNavDecorator
to behave more like the Android predictive back motion spec2025.04.00
2.56.1
0.1.3
1.10.2
1.16.0
0.17.0
Special thanks to @OSemenovBoyarka and @asapha for contributing to this release!
v0.27.0
Compare Source
2025-02-28
Screen based animation overrides
We have added experimental support for animations based on the source/target screens and the type of navigation event. This can be accomplished with the the new
AnimatedScreenTransform
interface, allowing customization of theContentTransform
used when transitioning between screens. Having support for screen based animation overrides is especially important for use with shared element transitions, as it provides the ability to replace the transition before the shared elements are loaded.See this PR for more details and example implementations. Please share feedback in this discussion.
Behaviour Changes:
State retention logic was simplified by removing
LocalCanRetainChecker
, withCanRetainChecker
becoming an implementation detail of aRetainedStateRegistry
.This potentially impacts uses of
rememberRetained
that depended onLocalCanRetainChecker
, asrememberRetained
would use the composition local before usingrememberCanRetainChecker
. Also, asrememberCanRetainChecker
was only needed forContinuity
it has been renamed torememberContinuityCanRetainChecker
.Misc:
resetRoot
whileNavigableCircuitContent
was animating.v1.10.1
.2.1.10-1.0.31
.2.1.0
.0.16.0
Special thanks to @vulpeszerda for contributing to this release!
v0.26.1
Compare Source
2025-02-13
CupertinoGestureNavigationDecoration
to be aAnimatedNavDecorator
.removeState
call inRetainedStateHolder
.1.7.8
.Special thanks to @vulpeszerda for contributing to this release!
v0.26.0
Compare Source
2025-02-06
Happy new year!
Shared Elements API!
After a lot of iteration and work, this release adds support for Compose's new shared elements APIs.
These are still experimental and subject to change, both in Circuit and the underlying Compose APIs.
See this PR for full details as well as sample integrations: https://github.com/slackhq/circuit/pull/1550. Please share feedback in this discussion. More formal docs to come as well, we'll publish updates there!
For now, the easiest way to support shared element transitions is to wrap your content with a
SharedElementTransitionLayout
.SharedElementTransitionLayout
creates and provides aSharedElementTransitionScope
to content within it, and in turn exposes aSharedTransitionScope
for use with standard compose shared elements/bounds animations. This is supported inNavigableCircuitContent
and overlays.There is also a
PreviewSharedElementTransitionLayout
for help with Compose previews.Behaviour Changes:
rememberRetained
Previously,
rememberRetained
could sometimes restore values when a composable was re-added, depending on whether its parentRetainedStateRegistry
had been saved (#1783).Now,
rememberRetained
aligns withremember
andrememberSaveable
: if a composable is removed and later re-added, its value will not be restored unless it is explicitly saved and then restored via the registry.Update rememberRetained to allow CanRetainChecker to be updated in place.
Behaviour Change:
RetainedStateRegistry
saveAll
now returns the saved values.RetainedStateRegistry.Entry.unregister
now returns whether the unsaved valueProvider was actually removed.saveAll
andsaveValue
now skip storing child values whenCanRetainChecker
returnsfalse
.New:
RetainedStateHolder
Similar to
SaveableStateHolder
,RetainedStateHolder
provides a mechanism to maintain separateRetainedStateRegistry
entries for specific keys. This allows saving the state defined withrememberRetained
for a subtree before it is disposed, so that the subtree can later be recomposed with its state restored.Implementation Changes:
NavigableCircuitContent
RetainedStateRegistry
for each record has been changed to useRetainedStateHolder
instead.SaveableStateHolder
to release saved states of removed records.Misc
2025.01.01
.1.9.1
.1.10.0
.1.7.7
.1.7.3
.1.9.10
.1.9.10-1.0.29
.2.55
.2.0.0
.0.4.1
. Should still be compatible with square/anvil as well.0.1.2
. Should still be compatible with square/anvil as well.Special thanks to @vulpeszerda, @rharter, @alexvanyo, and @easyhooon for contributing to this release!
Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about these updates again.
This PR was generated by Mend Renovate. View the repository job log.