Releases: freeletics/khonshu
Releases · freeletics/khonshu
0.13.0
Navigator
- Added proguard rules to not obfuscate the names of
NavRoute
,NavRoot
andActivityRoute
subclasses.
Whetstone
- The
state
andsendAction
parameters in annotated composables are now optional and only need
to be specified if they are needed - The
state
andsendAction
parameters of annotated composables can now have different names - Automatically discover
ViewRenderer.Factory
subclass nested inside the annotatedViewRenderer
and removed the now obsoleterendererFactory
parameter
0.12.0
Navigator
- Added docs for deep link support.
- Internal changes and refactorings.
Whetstone
- BREAKING simplified integration with the navigator library
- removed the
@NavDestination
annotation - added
@ComposeDestination
and@RendererDestination
as replacements - these new annotations also replace
@ComposeScreen
/@ComposeFragment
/@RendererFragment
so
that always just one Whetstone annotation is needed per screen route
andscope
are combined into aroute
parameter which removes the need to define scope
classes, theNavRoute
orNavRoot
serves both purposes- the previous point means that the same
route
will also need to be used in any place that that
requires scope markers like@ScopeTo
,@ContributesTo
or@ContributesBinding
- removed the
- New
AppScope
scope marker class. This can be used as the scope marker for an app level component.
All whetstone annotations use it as default value forparentScope
anddestinationScope
, so those
two don't need to be explicitly specified anymore after adopintAppScope
. - Fixed compiler warning produced by generated code.
- Generated Fragments for compose now use
DisposeOnViewTreeLifecycleDestroyed
.
StateMachine
- added Kotlin/JS as target
0.11.0
Navigator
- new
navigator-testing
artifact to testNavEventNavigator
, see docs NavEvent
and other APIs that were marked as visible for testing are now marked as internal- compose navigation APIs are not annotated with
ExperimentalMaterialNavigationApi
anymore
StateMachine
- new
state-machine-testing
artifact, see docs
Whetstone
- support for Anvil 2.4.4
- injecting into
Composable
functions now supports generic types - added docs for
Closeable
support which allows cleaning up resources - Internal: clean up and streamline code in the code generator
0.10.1
Navigator
- fix crash when
DeepLink
contains anActivityRoute
0.10.0
Navigator
- added support for handling deep links, see
DeepLink
andDeepLinkHandler
(more docs coming soon) navigateToRoot
now has asaveCurrentRootState
parameter which defaults to true (matches the previous implicit behavior). Can be set to false to clear the current back stack.navigateBackTo
now does not allow passing aNavRoot
as target anymore. UsenavigateToRoot<...>(false, false)
insteadActivityRoute
is now alwaysParcelable
and has been split into 2 sub-classes/interfacesInternalActivityRoute
forActivity
classes inside the app andExternalActivityRoute
for Intents that leave the appPermissionResult
is now a sealed class instead of an enum class. TheDENIED
andDENIED_FOREVER
values were merged into a singleDenied
subclass that has ashowRationale
boolean property. This beingfalse
would match the old denied forever value. The reason for this change is thatDenied
withshowRationale
beingfalse
does not necessarily mean denied forever on newer platform versions, it could also mean that the first ever permission prompt was dismissed without making a choice.- Make a few APIs that were not meant to be public internal or mark them as such
- Internal: share more code between the compose and fragment implementations
- Internal: unify handling of permission results and activity results
Whetstone
- Remove dependency on AndroidX navigation. Whetstone’s navigation artifacts now only rely on our own navigator APIs
- Internal: Stop generating view models for each annotated screen. Instead use a runtime class to hold on to components